! function(t, e) {
	if ("object" == typeof exports && "object" == typeof module) module.exports = e();
	else if ("function" == typeof define && define.amd) define([], e);
	else {
		var r = e();
		for (var n in r)("object" == typeof exports ? exports : t)[n] = r[n]
	}
}(window, (function() {
	return function(t) {
		var e = {};

		function r(n) {
			if (e[n]) return e[n].exports;
			var s = e[n] = {
				i: n,
				l: !1,
				exports: {}
			};
			return t[n].call(s.exports, s, s.exports, r), s.l = !0, s.exports
		}
		return r.m = t, r.c = e, r.d = function(t, e, n) {
			r.o(t, e) || Object.defineProperty(t, e, {
				enumerable: !0,
				get: n
			})
		}, r.r = function(t) {
			"undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol
				.toStringTag, {
					value: "Module"
				}), Object.defineProperty(t, "__esModule", {
				value: !0
			})
		}, r.t = function(t, e) {
			if (1 & e && (t = r(t)), 8 & e) return t;
			if (4 & e && "object" == typeof t && t && t.__esModule) return t;
			var n = Object.create(null);
			if (r.r(n), Object.defineProperty(n, "default", {
					enumerable: !0,
					value: t
				}), 2 & e && "string" != typeof t)
				for (var s in t) r.d(n, s, function(e) {
					return t[e]
				}.bind(null, s));
			return n
		}, r.n = function(t) {
			var e = t && t.__esModule ? function() {
				return t.default
			} : function() {
				return t
			};
			return r.d(e, "a", e), e
		}, r.o = function(t, e) {
			return Object.prototype.hasOwnProperty.call(t, e)
		}, r.p = "", r(r.s = 14)
	}([function(t, e) {
		t.exports = function() {
			return function() {}
		}
	}, function(t, e, r) {
		function n(t) {
			if (t) return function(t) {
				for (var e in n.prototype) t[e] = n.prototype[e];
				return t
			}(t)
		}
		t.exports = n, n.prototype.on = n.prototype.addEventListener = function(t, e) {
				return this._callbacks = this._callbacks || {}, (this._callbacks["$" + t] = this
					._callbacks["$" + t] || []).push(e), this
			}, n.prototype.once = function(t, e) {
				function r() {
					this.off(t, r), e.apply(this, arguments)
				}
				return r.fn = e, this.on(t, r), this
			}, n.prototype.off = n.prototype.removeListener = n.prototype.removeAllListeners = n
			.prototype.removeEventListener = function(t, e) {
				if (this._callbacks = this._callbacks || {}, 0 == arguments.length) return this
					._callbacks = {}, this;
				var r, n = this._callbacks["$" + t];
				if (!n) return this;
				if (1 == arguments.length) return delete this._callbacks["$" + t], this;
				for (var s = 0; s < n.length; s++)
					if ((r = n[s]) === e || r.fn === e) {
						n.splice(s, 1);
						break
					} return 0 === n.length && delete this._callbacks["$" + t], this
			}, n.prototype.emit = function(t) {
				this._callbacks = this._callbacks || {};
				for (var e = new Array(arguments.length - 1), r = this._callbacks["$" + t], n =
					1; n < arguments.length; n++) e[n - 1] = arguments[n];
				if (r) {
					n = 0;
					for (var s = (r = r.slice(0)).length; n < s; ++n) r[n].apply(this, e)
				}
				return this
			}, n.prototype.listeners = function(t) {
				return this._callbacks = this._callbacks || {}, this._callbacks["$" + t] || []
			}, n.prototype.hasListeners = function(t) {
				return !!this.listeners(t).length
			}
	}, function(t, e, r) {
		const n = r(24),
			s = r(25),
			o = String.fromCharCode(30);
		t.exports = {
			protocol: 4,
			encodePacket: n,
			encodePayload: (t, e) => {
				const r = t.length,
					s = new Array(r);
				let i = 0;
				t.forEach((t, a) => {
					n(t, !1, t => {
						s[a] = t, ++i === r && e(s.join(o))
					})
				})
			},
			decodePacket: s,
			decodePayload: (t, e) => {
				const r = t.split(o),
					n = [];
				for (let t = 0; t < r.length; t++) {
					const o = s(r[t], e);
					if (n.push(o), "error" === o.type) break
				}
				return n
			}
		}
	}, function(t, e, r) {
		"use strict";
		Object.defineProperty(e, "__esModule", {
			value: !0
		}), e.Decoder = e.Encoder = e.PacketType = e.protocol = void 0;
		const n = r(1),
			s = r(41),
			o = r(12),
			i = r(0)("socket.io-parser");
		var a;
		e.protocol = 5,
			function(t) {
				t[t.CONNECT = 0] = "CONNECT", t[t.DISCONNECT = 1] = "DISCONNECT", t[t.EVENT = 2] =
					"EVENT", t[t.ACK = 3] = "ACK", t[t.CONNECT_ERROR = 4] = "CONNECT_ERROR", t[t
						.BINARY_EVENT = 5] = "BINARY_EVENT", t[t.BINARY_ACK = 6] = "BINARY_ACK"
			}(a = e.PacketType || (e.PacketType = {}));
		e.Encoder = class {
			encode(t) {
				return i("encoding packet %j", t), t.type !== a.EVENT && t.type !== a.ACK ||
					!o.hasBinary(t) ? [this.encodeAsString(t)] : (t.type = t.type === a
						.EVENT ? a.BINARY_EVENT : a.BINARY_ACK, this.encodeAsBinary(t))
			}
			encodeAsString(t) {
				let e = "" + t.type;
				return t.type !== a.BINARY_EVENT && t.type !== a.BINARY_ACK || (e += t
						.attachments + "-"), t.nsp && "/" !== t.nsp && (e += t.nsp + ","),
					null != t.id && (e += t.id), null != t.data && (e += JSON.stringify(t
						.data)), i("encoded %j as %s", t, e), e
			}
			encodeAsBinary(t) {
				const e = s.deconstructPacket(t),
					r = this.encodeAsString(e.packet),
					n = e.buffers;
				return n.unshift(r), n
			}
		};
		class c extends n {
			constructor() {
				super()
			}
			add(t) {
				let e;
				if ("string" == typeof t) e = this.decodeString(t), e.type === a.BINARY_EVENT ||
					e.type === a.BINARY_ACK ? (this.reconstructor = new h(e), 0 === e
						.attachments && super.emit("decoded", e)) : super.emit("decoded", e);
				else {
					if (!o.isBinary(t) && !t.base64) throw new Error("Unknown type: " + t);
					if (!this.reconstructor) throw new Error(
						"got binary data when not reconstructing a packet");
					e = this.reconstructor.takeBinaryData(t), e && (this.reconstructor = null,
						super.emit("decoded", e))
				}
			}
			decodeString(t) {
				let e = 0;
				const r = {
					type: Number(t.charAt(0))
				};
				if (void 0 === a[r.type]) throw new Error("unknown packet type " + r.type);
				if (r.type === a.BINARY_EVENT || r.type === a.BINARY_ACK) {
					const n = e + 1;
					for (;
						"-" !== t.charAt(++e) && e != t.length;);
					const s = t.substring(n, e);
					if (s != Number(s) || "-" !== t.charAt(e)) throw new Error(
						"Illegal attachments");
					r.attachments = Number(s)
				}
				if ("/" === t.charAt(e + 1)) {
					const n = e + 1;
					for (; ++e;) {
						if ("," === t.charAt(e)) break;
						if (e === t.length) break
					}
					r.nsp = t.substring(n, e)
				} else r.nsp = "/";
				const n = t.charAt(e + 1);
				if ("" !== n && Number(n) == n) {
					const n = e + 1;
					for (; ++e;) {
						const r = t.charAt(e);
						if (null == r || Number(r) != r) {
							--e;
							break
						}
						if (e === t.length) break
					}
					r.id = Number(t.substring(n, e + 1))
				}
				if (t.charAt(++e)) {
					const n = function(t) {
						try {
							return JSON.parse(t)
						} catch (t) {
							return !1
						}
					}(t.substr(e));
					if (!c.isPayloadValid(r.type, n)) throw new Error("invalid payload");
					r.data = n
				}
				return i("decoded %s as %j", t, r), r
			}
			static isPayloadValid(t, e) {
				switch (t) {
					case a.CONNECT:
						return "object" == typeof e;
					case a.DISCONNECT:
						return void 0 === e;
					case a.CONNECT_ERROR:
						return "string" == typeof e || "object" == typeof e;
					case a.EVENT:
					case a.BINARY_EVENT:
						return Array.isArray(e) && e.length > 0;
					case a.ACK:
					case a.BINARY_ACK:
						return Array.isArray(e)
				}
			}
			destroy() {
				this.reconstructor && this.reconstructor.finishedReconstruction()
			}
		}
		e.Decoder = c;
		class h {
			constructor(t) {
				this.packet = t, this.buffers = [], this.reconPack = t
			}
			takeBinaryData(t) {
				if (this.buffers.push(t), this.buffers.length === this.reconPack.attachments) {
					const t = s.reconstructPacket(this.reconPack, this.buffers);
					return this.finishedReconstruction(), t
				}
				return null
			}
			finishedReconstruction() {
				this.reconPack = null, this.buffers = []
			}
		}
	}, function(t, e) {
		var r =
			/^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,
			n = ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port",
				"relative", "path", "directory", "file", "query", "anchor"
			];
		t.exports = function(t) {
			var e = t,
				s = t.indexOf("["),
				o = t.indexOf("]"); - 1 != s && -1 != o && (t = t.substring(0, s) + t.substring(
				s, o).replace(/:/g, ";") + t.substring(o, t.length));
			for (var i, a, c = r.exec(t || ""), h = {}, u = 14; u--;) h[n[u]] = c[u] || "";
			return -1 != s && -1 != o && (h.source = e, h.host = h.host.substring(1, h.host
					.length - 1).replace(/;/g, ":"), h.authority = h.authority.replace("[",
					"").replace("]", "").replace(/;/g, ":"), h.ipv6uri = !0), h.pathNames =
				function(t, e) {
					var r = e.replace(/\/{2,9}/g, "/").split("/");
					"/" != e.substr(0, 1) && 0 !== e.length || r.splice(0, 1);
					"/" == e.substr(e.length - 1, 1) && r.splice(r.length - 1, 1);
					return r
				}(0, h.path), h.queryKey = (i = h.query, a = {}, i.replace(
					/(?:^|&)([^&=]*)=?([^&]*)/g, (function(t, e, r) {
						e && (a[e] = r)
					})), a), h
		}
	}, function(t, e, r) {
		"use strict";
		Object.defineProperty(e, "__esModule", {
			value: !0
		}), e.Manager = void 0;
		const n = r(17),
			s = r(11),
			o = r(1),
			i = r(3),
			a = r(13),
			c = r(42),
			h = r(0)("socket.io-client:manager");
		e.Manager = class extends o {
			constructor(t, e) {
				super(), this.nsps = {}, this.subs = [], t && "object" == typeof t && (e =
						t, t = void 0), (e = e || {}).path = e.path || "/socket.io", this
					.opts = e, this.reconnection(!1 !== e.reconnection), this
					.reconnectionAttempts(e.reconnectionAttempts || 1 / 0), this
					.reconnectionDelay(e.reconnectionDelay || 1e3), this
					.reconnectionDelayMax(e.reconnectionDelayMax || 5e3), this
					.randomizationFactor(e.randomizationFactor || .5), this.backoff =
				new c({
						min: this.reconnectionDelay(),
						max: this.reconnectionDelayMax(),
						jitter: this.randomizationFactor()
					}), this.timeout(null == e.timeout ? 2e4 : e.timeout), this
					._readyState = "closed", this.uri = t;
				const r = e.parser || i;
				this.encoder = new r.Encoder, this.decoder = new r.Decoder, this
					._autoConnect = !1 !== e.autoConnect, this._autoConnect && this.open()
			}
			reconnection(t) {
				return arguments.length ? (this._reconnection = !!t, this) : this
					._reconnection
			}
			reconnectionAttempts(t) {
				return void 0 === t ? this._reconnectionAttempts : (this
					._reconnectionAttempts = t, this)
			}
			reconnectionDelay(t) {
				var e;
				return void 0 === t ? this._reconnectionDelay : (this._reconnectionDelay =
					t, null === (e = this.backoff) || void 0 === e || e.setMin(t), this)
			}
			randomizationFactor(t) {
				var e;
				return void 0 === t ? this._randomizationFactor : (this
					._randomizationFactor = t, null === (e = this.backoff) || void 0 ===
					e || e.setJitter(t), this)
			}
			reconnectionDelayMax(t) {
				var e;
				return void 0 === t ? this._reconnectionDelayMax : (this
					._reconnectionDelayMax = t, null === (e = this.backoff) ||
					void 0 === e || e.setMax(t), this)
			}
			timeout(t) {
				return arguments.length ? (this._timeout = t, this) : this._timeout
			}
			maybeReconnectOnOpen() {
				!this._reconnecting && this._reconnection && 0 === this.backoff.attempts &&
					this.reconnect()
			}
			open(t) {
				if (h("readyState %s", this._readyState), ~this._readyState.indexOf("open"))
					return this;
				h("opening %s", this.uri), this.engine = n(this.uri, this.opts);
				const e = this.engine,
					r = this;
				this._readyState = "opening", this.skipReconnect = !1;
				const s = a.on(e, "open", (function() {
						r.onopen(), t && t()
					})),
					o = a.on(e, "error", e => {
						h("error"), r.cleanup(), r._readyState = "closed", super.emit(
							"error", e), t ? t(e) : r.maybeReconnectOnOpen()
					});
				if (!1 !== this._timeout) {
					const t = this._timeout;
					h("connect attempt will timeout after %d", t), 0 === t && s();
					const r = setTimeout(() => {
						h("connect attempt timed out after %d", t), s(), e.close(),
							e.emit("error", new Error("timeout"))
					}, t);
					this.subs.push((function() {
						clearTimeout(r)
					}))
				}
				return this.subs.push(s), this.subs.push(o), this
			}
			connect(t) {
				return this.open(t)
			}
			onopen() {
				h("open"), this.cleanup(), this._readyState = "open", super.emit("open");
				const t = this.engine;
				this.subs.push(a.on(t, "ping", this.onping.bind(this)), a.on(t, "data", this
						.ondata.bind(this)), a.on(t, "error", this.onerror.bind(this)),
					a.on(t, "close", this.onclose.bind(this)), a.on(this.decoder,
						"decoded", this.ondecoded.bind(this)))
			}
			onping() {
				super.emit("ping")
			}
			ondata(t) {
				this.decoder.add(t)
			}
			ondecoded(t) {
				super.emit("packet", t)
			}
			onerror(t) {
				h("error", t), super.emit("error", t)
			}
			socket(t, e) {
				let r = this.nsps[t];
				return r || (r = new s.Socket(this, t, e), this.nsps[t] = r), r
			}
			_destroy(t) {
				const e = Object.keys(this.nsps);
				for (const t of e) {
					if (this.nsps[t].active) return void h(
						"socket %s is still active, skipping close", t)
				}
				this._close()
			}
			_packet(t) {
				h("writing packet %j", t);
				const e = this.encoder.encode(t);
				for (let r = 0; r < e.length; r++) this.engine.write(e[r], t.options)
			}
			cleanup() {
				h("cleanup"), this.subs.forEach(t => t()), this.subs.length = 0, this
					.decoder.destroy()
			}
			_close() {
				h("disconnect"), this.skipReconnect = !0, this._reconnecting = !1,
					"opening" === this._readyState && this.cleanup(), this.backoff.reset(),
					this._readyState = "closed", this.engine && this.engine.close()
			}
			disconnect() {
				return this._close()
			}
			onclose(t) {
				h("onclose"), this.cleanup(), this.backoff.reset(), this._readyState =
					"closed", super.emit("close", t), this._reconnection && !this
					.skipReconnect && this.reconnect()
			}
			reconnect() {
				if (this._reconnecting || this.skipReconnect) return this;
				const t = this;
				if (this.backoff.attempts >= this._reconnectionAttempts) h(
					"reconnect failed"), this.backoff.reset(), super.emit(
					"reconnect_failed"), this._reconnecting = !1;
				else {
					const e = this.backoff.duration();
					h("will wait %dms before reconnect attempt", e), this._reconnecting = !
					0;
					const r = setTimeout(() => {
						t.skipReconnect || (h("attempting reconnect"), super.emit(
								"reconnect_attempt", t.backoff.attempts), t
							.skipReconnect || t.open(e => {
								e ? (h("reconnect attempt error"), t
										._reconnecting = !1, t.reconnect(),
										super.emit("reconnect_error", e)) :
									(h("reconnect success"), t
									.onreconnect())
							}))
					}, e);
					this.subs.push((function() {
						clearTimeout(r)
					}))
				}
			}
			onreconnect() {
				const t = this.backoff.attempts;
				this._reconnecting = !1, this.backoff.reset(), super.emit("reconnect", t)
			}
		}
	}, function(t, e, r) {
		const n = r(19);
		e.websocket = n
	}, function(t, e) {
		var r;
		r = function() {
			return this
		}();
		try {
			r = r || new Function("return this")()
		} catch (t) {
			"object" == typeof window && (r = window)
		}
		t.exports = r
	}, function(t, e, r) {
		const n = r(2),
			s = r(1),
			o = r(0)("engine.io-client:transport");
		t.exports = class extends s {
			constructor(t) {
				super(), this.opts = t, this.query = t.query, this.readyState = "", this
					.socket = t.socket
			}
			onError(t, e) {
				const r = new Error(t);
				return r.type = "TransportError", r.description = e, this.emit("error", r),
					this
			}
			open() {
				return "closed" !== this.readyState && "" !== this.readyState || (this
					.readyState = "opening", this.doOpen()), this
			}
			close() {
				return "opening" !== this.readyState && "open" !== this.readyState || (this
					.doClose(), this.onClose()), this
			}
			send(t) {
				"open" === this.readyState ? this.write(t) : o(
					"transport is not open, discarding packets")
			}
			onOpen() {
				this.readyState = "open", this.writable = !0, this.emit("open")
			}
			onData(t) {
				const e = n.decodePacket(t, this.socket.binaryType);
				this.onPacket(e)
			}
			onPacket(t) {
				this.emit("packet", t)
			}
			onClose() {
				this.readyState = "closed", this.emit("close")
			}
		}
	}, function(t, e) {
		const r = Object.create(null);
		r.open = "0", r.close = "1", r.ping = "2", r.pong = "3", r.message = "4", r.upgrade = "5", r
			.noop = "6";
		const n = Object.create(null);
		Object.keys(r).forEach(t => {
			n[r[t]] = t
		});
		t.exports = {
			PACKET_TYPES: r,
			PACKET_TYPES_REVERSE: n,
			ERROR_PACKET: {
				type: "error",
				data: "parser error"
			}
		}
	}, function(t, e) {
		e.encode = function(t) {
			var e = "";
			for (var r in t) t.hasOwnProperty(r) && (e.length && (e += "&"), e +=
				encodeURIComponent(r) + "=" + encodeURIComponent(t[r]));
			return e
		}, e.decode = function(t) {
			for (var e = {}, r = t.split("&"), n = 0, s = r.length; n < s; n++) {
				var o = r[n].split("=");
				e[decodeURIComponent(o[0])] = decodeURIComponent(o[1])
			}
			return e
		}
	}, function(t, e, r) {
		"use strict";
		Object.defineProperty(e, "__esModule", {
			value: !0
		}), e.Socket = void 0;
		const n = r(3),
			s = r(1),
			o = r(13),
			i = r(0)("socket.io-client:socket"),
			a = Object.freeze({
				connect: 1,
				connect_error: 1,
				disconnect: 1,
				disconnecting: 1,
				newListener: 1,
				removeListener: 1
			});
		e.Socket = class extends s {
			constructor(t, e, r) {
				super(), this.receiveBuffer = [], this.sendBuffer = [], this.ids = 0, this
					.acks = {}, this.flags = {}, this.io = t, this.nsp = e, this.ids = 0,
					this.acks = {}, this.receiveBuffer = [], this.sendBuffer = [], this
					.connected = !1, this.disconnected = !0, this.flags = {}, r && r.auth &&
					(this.auth = r.auth), this.io._autoConnect && this.open()
			}
			subEvents() {
				if (this.subs) return;
				const t = this.io;
				this.subs = [o.on(t, "open", this.onopen.bind(this)), o.on(t, "packet", this
						.onpacket.bind(this)), o.on(t, "error", this.onerror.bind(
					this)), o.on(t, "close", this.onclose.bind(this))
				]
			}
			get active() {
				return !!this.subs
			}
			connect() {
				return this.connected || (this.subEvents(), this.io._reconnecting || this.io
					.open(), "open" === this.io._readyState && this.onopen()), this
			}
			open() {
				return this.connect()
			}
			send(...t) {
				return t.unshift("message"), this.emit.apply(this, t), this
			}
			emit(t, ...e) {
				if (a.hasOwnProperty(t)) throw new Error('"' + t +
					'" is a reserved event name');
				e.unshift(t);
				const r = {
					type: n.PacketType.EVENT,
					data: e,
					options: {}
				};
				r.options.compress = !1 !== this.flags.compress, "function" == typeof e[e
					.length - 1] && (i("emitting packet with ack id %d", this.ids), this
					.acks[this.ids] = e.pop(), r.id = this.ids++);
				const s = this.io.engine && this.io.engine.transport && this.io.engine
					.transport.writable;
				return this.flags.volatile && (!s || !this.connected) ? i(
						"discard packet as the transport is not currently writable") : this
					.connected ? this.packet(r) : this.sendBuffer.push(r), this.flags = {},
					this
			}
			packet(t) {
				t.nsp = this.nsp, this.io._packet(t)
			}
			onopen() {
				i("transport is open - connecting"), "function" == typeof this.auth ? this
					.auth(t => {
						this.packet({
							type: n.PacketType.CONNECT,
							data: t
						})
					}) : this.packet({
						type: n.PacketType.CONNECT,
						data: this.auth
					})
			}
			onerror(t) {
				this.connected || super.emit("connect_error", t)
			}
			onclose(t) {
				i("close (%s)", t), this.connected = !1, this.disconnected = !0, delete this
					.id, super.emit("disconnect", t)
			}
			onpacket(t) {
				if (t.nsp === this.nsp) switch (t.type) {
					case n.PacketType.CONNECT:
						if (t.data && t.data.sid) {
							const e = t.data.sid;
							this.onconnect(e)
						} else super.emit("connect_error", new Error(
							"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"
							));
						break;
					case n.PacketType.EVENT:
					case n.PacketType.BINARY_EVENT:
						this.onevent(t);
						break;
					case n.PacketType.ACK:
					case n.PacketType.BINARY_ACK:
						this.onack(t);
						break;
					case n.PacketType.DISCONNECT:
						this.ondisconnect();
						break;
					case n.PacketType.CONNECT_ERROR:
						const e = new Error(t.data.message);
						e.data = t.data.data, super.emit("connect_error", e)
				}
			}
			onevent(t) {
				const e = t.data || [];
				i("emitting event %j", e), null != t.id && (i(
						"attaching ack callback to event"), e.push(this.ack(t.id))), this
					.connected ? this.emitEvent(e) : this.receiveBuffer.push(Object.freeze(
						e))
			}
			emitEvent(t) {
				if (this._anyListeners && this._anyListeners.length) {
					const e = this._anyListeners.slice();
					for (const r of e) r.apply(this, t)
				}
				super.emit.apply(this, t)
			}
			ack(t) {
				const e = this;
				let r = !1;
				return function(...s) {
					r || (r = !0, i("sending ack %j", s), e.packet({
						type: n.PacketType.ACK,
						id: t,
						data: s
					}))
				}
			}
			onack(t) {
				const e = this.acks[t.id];
				"function" == typeof e ? (i("calling ack %s with %j", t.id, t.data), e
					.apply(this, t.data), delete this.acks[t.id]) : i("bad ack %s", t
					.id)
			}
			onconnect(t) {
				i("socket connected with id %s", t), this.id = t, this.connected = !0, this
					.disconnected = !1, super.emit("connect"), this.emitBuffered()
			}
			emitBuffered() {
				this.receiveBuffer.forEach(t => this.emitEvent(t)), this.receiveBuffer = [],
					this.sendBuffer.forEach(t => this.packet(t)), this.sendBuffer = []
			}
			ondisconnect() {
				i("server disconnect (%s)", this.nsp), this.destroy(), this.onclose(
					"io server disconnect")
			}
			destroy() {
				this.subs && (this.subs.forEach(t => t()), this.subs = void 0), this.io
					._destroy(this)
			}
			disconnect() {
				return this.connected && (i("performing disconnect (%s)", this.nsp), this
					.packet({
						type: n.PacketType.DISCONNECT
					})), this.destroy(), this.connected && this.onclose(
					"io client disconnect"), this
			}
			close() {
				return this.disconnect()
			}
			compress(t) {
				return this.flags.compress = t, this
			}
			get volatile() {
				return this.flags.volatile = !0, this
			}
			onAny(t) {
				return this._anyListeners = this._anyListeners || [], this._anyListeners
					.push(t), this
			}
			prependAny(t) {
				return this._anyListeners = this._anyListeners || [], this._anyListeners
					.unshift(t), this
			}
			offAny(t) {
				if (!this._anyListeners) return this;
				if (t) {
					const e = this._anyListeners;
					for (let r = 0; r < e.length; r++)
						if (t === e[r]) return e.splice(r, 1), this
				} else this._anyListeners = [];
				return this
			}
			listenersAny() {
				return this._anyListeners || []
			}
		}
	}, function(t, e, r) {
		"use strict";
		Object.defineProperty(e, "__esModule", {
			value: !0
		}), e.hasBinary = e.isBinary = void 0;
		const n = "function" == typeof ArrayBuffer,
			s = Object.prototype.toString,
			o = "function" == typeof Blob || "undefined" != typeof Blob &&
			"[object BlobConstructor]" === s.call(Blob),
			i = "function" == typeof File || "undefined" != typeof File &&
			"[object FileConstructor]" === s.call(File);

		function a(t) {
			return n && (t instanceof ArrayBuffer || (t => "function" == typeof ArrayBuffer.isView ?
					ArrayBuffer.isView(t) : t.buffer instanceof ArrayBuffer)(t)) || o &&
				t instanceof Blob || i && t instanceof File
		}
		e.isBinary = a, e.hasBinary = function t(e, r) {
			if (!e || "object" != typeof e) return !1;
			if (Array.isArray(e)) {
				for (let r = 0, n = e.length; r < n; r++)
					if (t(e[r])) return !0;
				return !1
			}
			if (a(e)) return !0;
			if (e.toJSON && "function" == typeof e.toJSON && 1 === arguments.length) return t(e
				.toJSON(), !0);
			for (const r in e)
				if (Object.prototype.hasOwnProperty.call(e, r) && t(e[r])) return !0;
			return !1
		}
	}, function(t, e, r) {
		"use strict";
		Object.defineProperty(e, "__esModule", {
			value: !0
		}), e.on = void 0, e.on = function(t, e, r) {
			return t.on(e, r),
				function() {
					t.off(e, r)
				}
		}
	}, function(t, e, r) {
		t.exports = r(15)
	}, function(t, e, r) {
		"use strict";
		Object.defineProperty(e, "__esModule", {
			value: !0
		}), e.Socket = e.io = e.Manager = e.protocol = void 0;
		const n = r(16),
			s = r(5),
			o = r(11);
		Object.defineProperty(e, "Socket", {
			enumerable: !0,
			get: function() {
				return o.Socket
			}
		});
		const i = r(0)("socket.io-client");
		t.exports = e = c;
		const a = e.managers = {};

		function c(t, e) {
			"object" == typeof t && (e = t, t = void 0), e = e || {};
			const r = n.url(t, e.path),
				o = r.source,
				c = r.id,
				h = r.path,
				u = a[c] && h in a[c].nsps;
			let f;
			return e.forceNew || e["force new connection"] || !1 === e.multiplex || u ? (i(
					"ignoring socket cache for %s", o), f = new s.Manager(o, e)) : (a[c] || (i(
					"new io instance for %s", o), a[c] = new s.Manager(o, e)), f = a[c]), r.query &&
				!e.query && (e.query = r.queryKey), f.socket(r.path, e)
		}
		e.io = c;
		var h = r(3);
		Object.defineProperty(e, "protocol", {
			enumerable: !0,
			get: function() {
				return h.protocol
			}
		}), e.connect = c;
		var u = r(5);
		Object.defineProperty(e, "Manager", {
			enumerable: !0,
			get: function() {
				return u.Manager
			}
		})
	}, function(t, e, r) {
		"use strict";
		Object.defineProperty(e, "__esModule", {
			value: !0
		}), e.url = void 0;
		const n = r(4),
			s = r(0)("socket.io-client:url");
		e.url = function(t, e = "", r) {
			let o = t;
			r = r || "undefined" != typeof location && location, null == t && (t = r.protocol +
				"//" + r.host), "string" == typeof t && ("/" === t.charAt(0) && (t = "/" ===
				t.charAt(1) ? r.protocol + t : r.host + t), /^(https?|wss?):\/\//.test(
				t) || (s("protocol-less url %s", t), t = void 0 !== r ? r.protocol +
				"//" + t : "https://" + t), s("parse %s", t), o = n(t)), o.port || (
				/^(http|ws)$/.test(o.protocol) ? o.port = "80" : /^(http|ws)s$/.test(o
					.protocol) && (o.port = "443")), o.path = o.path || "/";
			const i = -1 !== o.host.indexOf(":") ? "[" + o.host + "]" : o.host;
			return o.id = o.protocol + "://" + i + ":" + o.port + e, o.href = o.protocol +
				"://" + i + (r && r.port === o.port ? "" : ":" + o.port), o
		}
	}, function(t, e, r) {
		const n = r(18);
		t.exports = (t, e) => new n(t, e), t.exports.Socket = n, t.exports.protocol = n.protocol, t
			.exports.Transport = r(8), t.exports.transports = r(6), t.exports.parser = r(2)
	}, function(t, e, r) {
		const n = r(6),
			s = r(1),
			o = r(0)("engine.io-client:socket"),
			i = r(2),
			a = r(4),
			c = r(10);
		class h extends s {
			constructor(t, e = {}) {
				super(), t && "object" == typeof t && (e = t, t = null), t ? (t = a(t), e
						.hostname = t.host, e.secure = "https" === t.protocol || "wss" === t
						.protocol, e.port = t.port, t.query && (e.query = t.query)) : e.host &&
					(e.hostname = a(e.host).host), this.secure = null != e.secure ? e.secure :
					"undefined" != typeof location && "https:" === location.protocol, e
					.hostname && !e.port && (e.port = this.secure ? "443" : "80"), this
					.hostname = e.hostname || ("undefined" != typeof location ? location
						.hostname : "localhost"), this.port = e.port || ("undefined" !=
						typeof location && location.port ? location.port : this.secure ? 443 :
						80), this.transports = e.transports || ["websocket"], this.readyState =
					"", this.writeBuffer = [], this.prevBufferLen = 0, this.opts = Object
					.assign({
						path: "/engine.io",
						agent: !1,
						withCredentials: !1,
						upgrade: !0,
						jsonp: !0,
						timestampParam: "t",
						rememberUpgrade: !1,
						rejectUnauthorized: !0,
						perMessageDeflate: {
							threshold: 1024
						},
						transportOptions: {}
					}, e), this.opts.path = this.opts.path.replace(/\/$/, "") + "/", "string" ==
					typeof this.opts.query && (this.opts.query = c.decode(this.opts.query)),
					this.id = null, this.upgrades = null, this.pingInterval = null, this
					.pingTimeout = null, this.pingTimeoutTimer = null, "function" ==
					typeof addEventListener && addEventListener("beforeunload", () => {
						this.transport && (this.transport.removeAllListeners(), this
							.transport.close())
					}, !1), this.open()
			}
			createTransport(t) {
				o('creating transport "%s"', t);
				const e = function(t) {
					const e = {};
					for (let r in t) t.hasOwnProperty(r) && (e[r] = t[r]);
					return e
				}(this.opts.query);
				e.EIO = i.protocol, e.transport = t, this.id && (e.sid = this.id);
				const r = Object.assign({}, this.opts.transportOptions[t], this.opts, {
					query: e,
					socket: this,
					hostname: this.hostname,
					secure: this.secure,
					port: this.port
				});
				return o("options: %j", r), new n[t](r)
			}
			open() {
				let t;
				if (this.opts.rememberUpgrade && h.priorWebsocketSuccess && -1 !== this
					.transports.indexOf("websocket")) t = "websocket";
				else {
					if (0 === this.transports.length) {
						const t = this;
						return void setTimeout((function() {
							t.emit("error", "No transports available")
						}), 0)
					}
					t = this.transports[0]
				}
				this.readyState = "opening";
				try {
					t = this.createTransport(t)
				} catch (t) {
					return o("error while creating transport: %s", t), this.transports.shift(),
						void this.open()
				}
				t.open(), this.setTransport(t)
			}
			setTransport(t) {
				o("setting transport %s", t.name);
				const e = this;
				this.transport && (o("clearing existing transport %s", this.transport.name),
					this.transport.removeAllListeners()), this.transport = t, t.on("drain",
					(function() {
						e.onDrain()
					})).on("packet", (function(t) {
					e.onPacket(t)
				})).on("error", (function(t) {
					e.onError(t)
				})).on("close", (function() {
					e.onClose("transport close")
				}))
			}
			probe(t) {
				o('probing transport "%s"', t);
				let e = this.createTransport(t, {
						probe: 1
					}),
					r = !1;
				const n = this;

				function s() {
					if (n.onlyBinaryUpgrades) {
						const t = !this.supportsBinary && n.transport.supportsBinary;
						r = r || t
					}
					r || (o('probe transport "%s" opened', t), e.send([{
						type: "ping",
						data: "probe"
					}]), e.once("packet", (function(s) {
						if (!r)
							if ("pong" === s.type && "probe" === s.data) {
								if (o('probe transport "%s" pong', t), n
									.upgrading = !0, n.emit("upgrading", e), !e)
									return;
								h.priorWebsocketSuccess = "websocket" === e
									.name, o('pausing current transport "%s"', n
										.transport.name), n.transport.pause((
										function() {
											r || "closed" !== n
												.readyState && (o(
														"changing transport and sending upgrade packet"
														), p(), n
													.setTransport(e), e
													.send([{
														type: "upgrade"
													}]), n.emit("upgrade",
														e), e = null, n
													.upgrading = !1, n
													.flush())
										}))
							} else {
								o('probe transport "%s" failed', t);
								const r = new Error("probe error");
								r.transport = e.name, n.emit("upgradeError", r)
							}
					})))
				}

				function i() {
					r || (r = !0, p(), e.close(), e = null)
				}

				function a(r) {
					const s = new Error("probe error: " + r);
					s.transport = e.name, i(), o(
						'probe transport "%s" failed because of error: %s', t, r), n.emit(
						"upgradeError", s)
				}

				function c() {
					a("transport closed")
				}

				function u() {
					a("socket closed")
				}

				function f(t) {
					e && t.name !== e.name && (o('"%s" works - aborting "%s"', t.name, e.name),
						i())
				}

				function p() {
					e.removeListener("open", s), e.removeListener("error", a), e.removeListener(
						"close", c), n.removeListener("close", u), n.removeListener(
						"upgrading", f)
				}
				h.priorWebsocketSuccess = !1, e.once("open", s), e.once("error", a), e.once(
					"close", c), this.once("close", u), this.once("upgrading", f), e.open()
			}
			onOpen() {
				if (o("socket open"), this.readyState = "open", h.priorWebsocketSuccess =
					"websocket" === this.transport.name, this.emit("open"), this.flush(),
					"open" === this.readyState && this.opts.upgrade && this.transport.pause) {
					o("starting upgrade probes");
					let t = 0;
					const e = this.upgrades.length;
					for (; t < e; t++) this.probe(this.upgrades[t])
				}
			}
			onPacket(t) {
				if ("opening" === this.readyState || "open" === this.readyState || "closing" ===
					this.readyState) switch (o('socket receive: type "%s", data "%s"', t.type, t
					.data), this.emit("packet", t), this.emit("heartbeat"), t.type) {
					case "open":
						this.onHandshake(JSON.parse(t.data));
						break;
					case "ping":
						this.resetPingTimeout(), this.sendPacket("pong"), this.emit("pong");
						break;
					case "error":
						const e = new Error("server error");
						e.code = t.data, this.onError(e);
						break;
					case "message":
						this.emit("data", t.data), this.emit("message", t.data)
				} else o('packet received with socket readyState "%s"', this.readyState)
			}
			onHandshake(t) {
				this.emit("handshake", t), this.id = t.sid, this.transport.query.sid = t.sid,
					this.upgrades = this.filterUpgrades(t.upgrades), this.pingInterval = t
					.pingInterval, this.pingTimeout = t.pingTimeout, this.onOpen(), "closed" !==
					this.readyState && this.resetPingTimeout()
			}
			resetPingTimeout() {
				clearTimeout(this.pingTimeoutTimer), this.pingTimeoutTimer = setTimeout(() => {
					this.onClose("ping timeout")
				}, this.pingInterval + this.pingTimeout)
			}
			onDrain() {
				this.writeBuffer.splice(0, this.prevBufferLen), this.prevBufferLen = 0, 0 ===
					this.writeBuffer.length ? this.emit("drain") : this.flush()
			}
			flush() {
				"closed" !== this.readyState && this.transport.writable && !this.upgrading &&
					this.writeBuffer.length && (o("flushing %d packets in socket", this
							.writeBuffer.length), this.transport.send(this.writeBuffer), this
						.prevBufferLen = this.writeBuffer.length, this.emit("flush"))
			}
			write(t, e, r) {
				return this.sendPacket("message", t, e, r), this
			}
			send(t, e, r) {
				return this.sendPacket("message", t, e, r), this
			}
			sendPacket(t, e, r, n) {
				if ("function" == typeof e && (n = e, e = void 0), "function" == typeof r && (
						n = r, r = null), "closing" === this.readyState || "closed" === this
					.readyState) return;
				(r = r || {}).compress = !1 !== r.compress;
				const s = {
					type: t,
					data: e,
					options: r
				};
				this.emit("packetCreate", s), this.writeBuffer.push(s), n && this.once("flush",
					n), this.flush()
			}
			close() {
				const t = this;

				function e() {
					t.onClose("forced close"), o("socket closing - telling transport to close"),
						t.transport.close()
				}

				function r() {
					t.removeListener("upgrade", r), t.removeListener("upgradeError", r), e()
				}

				function n() {
					t.once("upgrade", r), t.once("upgradeError", r)
				}
				return "opening" !== this.readyState && "open" !== this.readyState || (this
					.readyState = "closing", this.writeBuffer.length ? this.once("drain", (
						function() {
							this.upgrading ? n() : e()
						})) : this.upgrading ? n() : e()), this
			}
			onError(t) {
				o("socket error %j", t), h.priorWebsocketSuccess = !1, this.emit("error", t),
					this.onClose("transport error", t)
			}
			onClose(t, e) {
				if ("opening" === this.readyState || "open" === this.readyState || "closing" ===
					this.readyState) {
					o('socket close with reason: "%s"', t);
					const r = this;
					clearTimeout(this.pingIntervalTimer), clearTimeout(this.pingTimeoutTimer),
						this.transport.removeAllListeners("close"), this.transport.close(), this
						.transport.removeAllListeners(), this.readyState = "closed", this.id =
						null, this.emit("close", t, e), r.writeBuffer = [], r.prevBufferLen = 0
				}
			}
			filterUpgrades(t) {
				const e = [];
				let r = 0;
				const n = t.length;
				for (; r < n; r++) ~this.transports.indexOf(t[r]) && e.push(t[r]);
				return e
			}
		}
		h.priorWebsocketSuccess = !1, h.protocol = i.protocol, t.exports = h
	}, function(t, e, r) {
		(function(e) {
			const n = r(8),
				s = r(2),
				o = r(10),
				i = r(27),
				{
					pick: a
				} = r(28),
				{
					WebSocket: c,
					usingBrowserWebSocket: h,
					defaultBinaryType: u
				} = r(29),
				f = r(0)("engine.io-client:websocket"),
				p = "undefined" != typeof navigator && "string" == typeof navigator.product &&
				"reactnative" === navigator.product.toLowerCase();
			class l extends n {
				constructor(t) {
					super(t), this.supportsBinary = !t.forceBase64
				}
				get name() {
					return "websocket"
				}
				doOpen() {
					if (!this.check()) return;
					const t = this.uri(),
						e = this.opts.protocols,
						r = p ? {} : a(this.opts, "agent", "perMessageDeflate", "pfx",
							"key", "passphrase", "cert", "ca", "ciphers",
							"rejectUnauthorized", "localAddress", "protocolVersion",
							"origin", "maxPayload", "family", "checkServerIdentity");
					this.opts.extraHeaders && (r.headers = this.opts.extraHeaders);
					try {
						this.ws = h && !p ? e ? new c(t, e) : new c(t) : new c(t, e, r)
					} catch (t) {
						return this.emit("error", t)
					}
					this.ws.binaryType = this.socket.binaryType || u, this
						.addEventListeners()
				}
				addEventListeners() {
					const t = this;
					this.ws.onopen = function() {
						t.onOpen()
					}, this.ws.onclose = function() {
						t.onClose()
					}, this.ws.onmessage = function(e) {
						t.onData(e.data)
					}, this.ws.onerror = function(e) {
						t.onError("websocket error", e)
					}
				}
				write(t) {
					const r = this;
					this.writable = !1;
					let n = t.length,
						o = 0;
					const i = n;
					for (; o < i; o++) ! function(t) {
						s.encodePacket(t, r.supportsBinary, (function(s) {
							const o = {};
							if (!h && (t.options && (o.compress = t.options
										.compress), r.opts
									.perMessageDeflate)) {
								("string" == typeof s ? e.byteLength(s) : s
									.length) < r.opts.perMessageDeflate
									.threshold && (o.compress = !1)
							}
							try {
								h ? r.ws.send(s) : r.ws.send(s, o)
							} catch (t) {
								f("websocket closed before onclose event")
							}--n || a()
						}))
					}(t[o]);

					function a() {
						r.emit("flush"), setTimeout((function() {
							r.writable = !0, r.emit("drain")
						}), 0)
					}
				}
				onClose() {
					n.prototype.onClose.call(this)
				}
				doClose() {
					void 0 !== this.ws && (this.ws.close(), this.ws = null)
				}
				uri() {
					let t = this.query || {};
					const e = this.opts.secure ? "wss" : "ws";
					let r = "";
					return this.opts.port && ("wss" === e && 443 !== Number(this.opts
							.port) || "ws" === e && 80 !== Number(this.opts.port)) && (r =
							":" + this.opts.port), this.opts.timestampRequests && (t[this
							.opts.timestampParam] = i()), this.supportsBinary || (t.b64 =
						1), t = o.encode(t), t.length && (t = "?" + t), e + "://" + (-1 !==
							this.opts.hostname.indexOf(":") ? "[" + this.opts.hostname +
							"]" : this.opts.hostname) + r + this.opts.path + t
				}
				check() {
					return !(!c || "__initialize" in c && this.name === l.prototype.name)
				}
			}
			t.exports = l
		}).call(this, r(20).Buffer)
	}, function(t, e, r) {
		"use strict";
		(function(t) {
			/*!
			 * The buffer module from node.js, for the browser.
			 *
			 * @author   Feross Aboukhadijeh <http://feross.org>
			 * @license  MIT
			 */
			var n = r(21),
				s = r(22),
				o = r(23);

			function i() {
				return c.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823
			}

			function a(t, e) {
				if (i() < e) throw new RangeError("Invalid typed array length");
				return c.TYPED_ARRAY_SUPPORT ? (t = new Uint8Array(e)).__proto__ = c.prototype :
					(null === t && (t = new c(e)), t.length = e), t
			}

			function c(t, e, r) {
				if (!(c.TYPED_ARRAY_SUPPORT || this instanceof c)) return new c(t, e, r);
				if ("number" == typeof t) {
					if ("string" == typeof e) throw new Error(
						"If encoding is specified then the first argument must be a string"
						);
					return f(this, t)
				}
				return h(this, t, e, r)
			}

			function h(t, e, r, n) {
				if ("number" == typeof e) throw new TypeError(
					'"value" argument must not be a number');
				return "undefined" != typeof ArrayBuffer && e instanceof ArrayBuffer ? function(
					t, e, r, n) {
					if (e.byteLength, r < 0 || e.byteLength < r) throw new RangeError(
						"'offset' is out of bounds");
					if (e.byteLength < r + (n || 0)) throw new RangeError(
						"'length' is out of bounds");
					e = void 0 === r && void 0 === n ? new Uint8Array(e) : void 0 === n ?
						new Uint8Array(e, r) : new Uint8Array(e, r, n);
					c.TYPED_ARRAY_SUPPORT ? (t = e).__proto__ = c.prototype : t = p(t, e);
					return t
				}(t, e, r, n) : "string" == typeof e ? function(t, e, r) {
					"string" == typeof r && "" !== r || (r = "utf8");
					if (!c.isEncoding(r)) throw new TypeError(
						'"encoding" must be a valid string encoding');
					var n = 0 | d(e, r),
						s = (t = a(t, n)).write(e, r);
					s !== n && (t = t.slice(0, s));
					return t
				}(t, e, r) : function(t, e) {
					if (c.isBuffer(e)) {
						var r = 0 | l(e.length);
						return 0 === (t = a(t, r)).length || e.copy(t, 0, 0, r), t
					}
					if (e) {
						if ("undefined" != typeof ArrayBuffer && e
							.buffer instanceof ArrayBuffer || "length" in e)
						return "number" != typeof e.length || (n = e.length) != n ? a(t,
								0) : p(t, e);
						if ("Buffer" === e.type && o(e.data)) return p(t, e.data)
					}
					var n;
					throw new TypeError(
						"First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object."
						)
				}(t, e)
			}

			function u(t) {
				if ("number" != typeof t) throw new TypeError(
					'"size" argument must be a number');
				if (t < 0) throw new RangeError('"size" argument must not be negative')
			}

			function f(t, e) {
				if (u(e), t = a(t, e < 0 ? 0 : 0 | l(e)), !c.TYPED_ARRAY_SUPPORT)
					for (var r = 0; r < e; ++r) t[r] = 0;
				return t
			}

			function p(t, e) {
				var r = e.length < 0 ? 0 : 0 | l(e.length);
				t = a(t, r);
				for (var n = 0; n < r; n += 1) t[n] = 255 & e[n];
				return t
			}

			function l(t) {
				if (t >= i()) throw new RangeError(
					"Attempt to allocate Buffer larger than maximum size: 0x" + i()
					.toString(16) + " bytes");
				return 0 | t
			}

			function d(t, e) {
				if (c.isBuffer(t)) return t.length;
				if ("undefined" != typeof ArrayBuffer && "function" == typeof ArrayBuffer
					.isView && (ArrayBuffer.isView(t) || t instanceof ArrayBuffer)) return t
					.byteLength;
				"string" != typeof t && (t = "" + t);
				var r = t.length;
				if (0 === r) return 0;
				for (var n = !1;;) switch (e) {
					case "ascii":
					case "latin1":
					case "binary":
						return r;
					case "utf8":
					case "utf-8":
					case void 0:
						return Y(t).length;
					case "ucs2":
					case "ucs-2":
					case "utf16le":
					case "utf-16le":
						return 2 * r;
					case "hex":
						return r >>> 1;
					case "base64":
						return q(t).length;
					default:
						if (n) return Y(t).length;
						e = ("" + e).toLowerCase(), n = !0
				}
			}

			function y(t, e, r) {
				var n = !1;
				if ((void 0 === e || e < 0) && (e = 0), e > this.length) return "";
				if ((void 0 === r || r > this.length) && (r = this.length), r <= 0) return "";
				if ((r >>>= 0) <= (e >>>= 0)) return "";
				for (t || (t = "utf8");;) switch (t) {
					case "hex":
						return P(this, e, r);
					case "utf8":
					case "utf-8":
						return S(this, e, r);
					case "ascii":
						return C(this, e, r);
					case "latin1":
					case "binary":
						return T(this, e, r);
					case "base64":
						return O(this, e, r);
					case "ucs2":
					case "ucs-2":
					case "utf16le":
					case "utf-16le":
						return R(this, e, r);
					default:
						if (n) throw new TypeError("Unknown encoding: " + t);
						t = (t + "").toLowerCase(), n = !0
				}
			}

			function g(t, e, r) {
				var n = t[e];
				t[e] = t[r], t[r] = n
			}

			function m(t, e, r, n, s) {
				if (0 === t.length) return -1;
				if ("string" == typeof r ? (n = r, r = 0) : r > 2147483647 ? r = 2147483647 :
					r < -2147483648 && (r = -2147483648), r = +r, isNaN(r) && (r = s ? 0 : t
						.length - 1), r < 0 && (r = t.length + r), r >= t.length) {
					if (s) return -1;
					r = t.length - 1
				} else if (r < 0) {
					if (!s) return -1;
					r = 0
				}
				if ("string" == typeof e && (e = c.from(e, n)), c.isBuffer(e)) return 0 === e
					.length ? -1 : v(t, e, r, n, s);
				if ("number" == typeof e) return e &= 255, c.TYPED_ARRAY_SUPPORT &&
					"function" == typeof Uint8Array.prototype.indexOf ? s ? Uint8Array
					.prototype.indexOf.call(t, e, r) : Uint8Array.prototype.lastIndexOf
					.call(t, e, r) : v(t, [e], r, n, s);
				throw new TypeError("val must be string, number or Buffer")
			}

			function v(t, e, r, n, s) {
				var o, i = 1,
					a = t.length,
					c = e.length;
				if (void 0 !== n && ("ucs2" === (n = String(n).toLowerCase()) || "ucs-2" ===
						n || "utf16le" === n || "utf-16le" === n)) {
					if (t.length < 2 || e.length < 2) return -1;
					i = 2, a /= 2, c /= 2, r /= 2
				}

				function h(t, e) {
					return 1 === i ? t[e] : t.readUInt16BE(e * i)
				}
				if (s) {
					var u = -1;
					for (o = r; o < a; o++)
						if (h(t, o) === h(e, -1 === u ? 0 : o - u)) {
							if (-1 === u && (u = o), o - u + 1 === c) return u * i
						} else -1 !== u && (o -= o - u), u = -1
				} else
					for (r + c > a && (r = a - c), o = r; o >= 0; o--) {
						for (var f = !0, p = 0; p < c; p++)
							if (h(t, o + p) !== h(e, p)) {
								f = !1;
								break
							} if (f) return o
					}
				return -1
			}

			function b(t, e, r, n) {
				r = Number(r) || 0;
				var s = t.length - r;
				n ? (n = Number(n)) > s && (n = s) : n = s;
				var o = e.length;
				if (o % 2 != 0) throw new TypeError("Invalid hex string");
				n > o / 2 && (n = o / 2);
				for (var i = 0; i < n; ++i) {
					var a = parseInt(e.substr(2 * i, 2), 16);
					if (isNaN(a)) return i;
					t[r + i] = a
				}
				return i
			}

			function w(t, e, r, n) {
				return F(Y(e, t.length - r), t, r, n)
			}

			function _(t, e, r, n) {
				return F(function(t) {
					for (var e = [], r = 0; r < t.length; ++r) e.push(255 & t
						.charCodeAt(r));
					return e
				}(e), t, r, n)
			}

			function E(t, e, r, n) {
				return _(t, e, r, n)
			}

			function k(t, e, r, n) {
				return F(q(e), t, r, n)
			}

			function A(t, e, r, n) {
				return F(function(t, e) {
					for (var r, n, s, o = [], i = 0; i < t.length && !((e -= 2) < 0); ++
						i) r = t.charCodeAt(i), n = r >> 8, s = r % 256, o.push(s), o
						.push(n);
					return o
				}(e, t.length - r), t, r, n)
			}

			function O(t, e, r) {
				return 0 === e && r === t.length ? n.fromByteArray(t) : n.fromByteArray(t.slice(
					e, r))
			}

			function S(t, e, r) {
				r = Math.min(t.length, r);
				for (var n = [], s = e; s < r;) {
					var o, i, a, c, h = t[s],
						u = null,
						f = h > 239 ? 4 : h > 223 ? 3 : h > 191 ? 2 : 1;
					if (s + f <= r) switch (f) {
						case 1:
							h < 128 && (u = h);
							break;
						case 2:
							128 == (192 & (o = t[s + 1])) && (c = (31 & h) << 6 | 63 & o) >
								127 && (u = c);
							break;
						case 3:
							o = t[s + 1], i = t[s + 2], 128 == (192 & o) && 128 == (192 &
								i) && (c = (15 & h) << 12 | (63 & o) << 6 | 63 & i) >
								2047 && (c < 55296 || c > 57343) && (u = c);
							break;
						case 4:
							o = t[s + 1], i = t[s + 2], a = t[s + 3], 128 == (192 & o) &&
								128 == (192 & i) && 128 == (192 & a) && (c = (15 & h) <<
									18 | (63 & o) << 12 | (63 & i) << 6 | 63 & a) > 65535 &&
								c < 1114112 && (u = c)
					}
					null === u ? (u = 65533, f = 1) : u > 65535 && (u -= 65536, n.push(u >>>
						10 & 1023 | 55296), u = 56320 | 1023 & u), n.push(u), s += f
				}
				return function(t) {
					var e = t.length;
					if (e <= 4096) return String.fromCharCode.apply(String, t);
					var r = "",
						n = 0;
					for (; n < e;) r += String.fromCharCode.apply(String, t.slice(n, n +=
						4096));
					return r
				}(n)
			}
			e.Buffer = c, e.SlowBuffer = function(t) {
					+t != t && (t = 0);
					return c.alloc(+t)
				}, e.INSPECT_MAX_BYTES = 50, c.TYPED_ARRAY_SUPPORT = void 0 !== t
				.TYPED_ARRAY_SUPPORT ? t.TYPED_ARRAY_SUPPORT : function() {
					try {
						var t = new Uint8Array(1);
						return t.__proto__ = {
								__proto__: Uint8Array.prototype,
								foo: function() {
									return 42
								}
							}, 42 === t.foo() && "function" == typeof t.subarray && 0 === t
							.subarray(1, 1).byteLength
					} catch (t) {
						return !1
					}
				}(), e.kMaxLength = i(), c.poolSize = 8192, c._augment = function(t) {
					return t.__proto__ = c.prototype, t
				}, c.from = function(t, e, r) {
					return h(null, t, e, r)
				}, c.TYPED_ARRAY_SUPPORT && (c.prototype.__proto__ = Uint8Array.prototype, c
					.__proto__ = Uint8Array, "undefined" != typeof Symbol && Symbol.species &&
					c[Symbol.species] === c && Object.defineProperty(c, Symbol.species, {
						value: null,
						configurable: !0
					})), c.alloc = function(t, e, r) {
					return function(t, e, r, n) {
						return u(e), e <= 0 ? a(t, e) : void 0 !== r ? "string" ==
							typeof n ? a(t, e).fill(r, n) : a(t, e).fill(r) : a(t, e)
					}(null, t, e, r)
				}, c.allocUnsafe = function(t) {
					return f(null, t)
				}, c.allocUnsafeSlow = function(t) {
					return f(null, t)
				}, c.isBuffer = function(t) {
					return !(null == t || !t._isBuffer)
				}, c.compare = function(t, e) {
					if (!c.isBuffer(t) || !c.isBuffer(e)) throw new TypeError(
						"Arguments must be Buffers");
					if (t === e) return 0;
					for (var r = t.length, n = e.length, s = 0, o = Math.min(r, n); s < o; ++s)
						if (t[s] !== e[s]) {
							r = t[s], n = e[s];
							break
						} return r < n ? -1 : n < r ? 1 : 0
				}, c.isEncoding = function(t) {
					switch (String(t).toLowerCase()) {
						case "hex":
						case "utf8":
						case "utf-8":
						case "ascii":
						case "latin1":
						case "binary":
						case "base64":
						case "ucs2":
						case "ucs-2":
						case "utf16le":
						case "utf-16le":
							return !0;
						default:
							return !1
					}
				}, c.concat = function(t, e) {
					if (!o(t)) throw new TypeError(
						'"list" argument must be an Array of Buffers');
					if (0 === t.length) return c.alloc(0);
					var r;
					if (void 0 === e)
						for (e = 0, r = 0; r < t.length; ++r) e += t[r].length;
					var n = c.allocUnsafe(e),
						s = 0;
					for (r = 0; r < t.length; ++r) {
						var i = t[r];
						if (!c.isBuffer(i)) throw new TypeError(
							'"list" argument must be an Array of Buffers');
						i.copy(n, s), s += i.length
					}
					return n
				}, c.byteLength = d, c.prototype._isBuffer = !0, c.prototype.swap16 =
			function() {
					var t = this.length;
					if (t % 2 != 0) throw new RangeError(
						"Buffer size must be a multiple of 16-bits");
					for (var e = 0; e < t; e += 2) g(this, e, e + 1);
					return this
				}, c.prototype.swap32 = function() {
					var t = this.length;
					if (t % 4 != 0) throw new RangeError(
						"Buffer size must be a multiple of 32-bits");
					for (var e = 0; e < t; e += 4) g(this, e, e + 3), g(this, e + 1, e + 2);
					return this
				}, c.prototype.swap64 = function() {
					var t = this.length;
					if (t % 8 != 0) throw new RangeError(
						"Buffer size must be a multiple of 64-bits");
					for (var e = 0; e < t; e += 8) g(this, e, e + 7), g(this, e + 1, e + 6), g(
						this, e + 2, e + 5), g(this, e + 3, e + 4);
					return this
				}, c.prototype.toString = function() {
					var t = 0 | this.length;
					return 0 === t ? "" : 0 === arguments.length ? S(this, 0, t) : y.apply(this,
						arguments)
				}, c.prototype.equals = function(t) {
					if (!c.isBuffer(t)) throw new TypeError("Argument must be a Buffer");
					return this === t || 0 === c.compare(this, t)
				}, c.prototype.inspect = function() {
					var t = "",
						r = e.INSPECT_MAX_BYTES;
					return this.length > 0 && (t = this.toString("hex", 0, r).match(/.{2}/g)
						.join(" "), this.length > r && (t += " ... ")), "<Buffer " + t + ">"
				}, c.prototype.compare = function(t, e, r, n, s) {
					if (!c.isBuffer(t)) throw new TypeError("Argument must be a Buffer");
					if (void 0 === e && (e = 0), void 0 === r && (r = t ? t.length : 0),
						void 0 === n && (n = 0), void 0 === s && (s = this.length), e < 0 || r >
						t.length || n < 0 || s > this.length) throw new RangeError(
						"out of range index");
					if (n >= s && e >= r) return 0;
					if (n >= s) return -1;
					if (e >= r) return 1;
					if (this === t) return 0;
					for (var o = (s >>>= 0) - (n >>>= 0), i = (r >>>= 0) - (e >>>= 0), a = Math
							.min(o, i), h = this.slice(n, s), u = t.slice(e, r), f = 0; f <
						a; ++f)
						if (h[f] !== u[f]) {
							o = h[f], i = u[f];
							break
						} return o < i ? -1 : i < o ? 1 : 0
				}, c.prototype.includes = function(t, e, r) {
					return -1 !== this.indexOf(t, e, r)
				}, c.prototype.indexOf = function(t, e, r) {
					return m(this, t, e, r, !0)
				}, c.prototype.lastIndexOf = function(t, e, r) {
					return m(this, t, e, r, !1)
				}, c.prototype.write = function(t, e, r, n) {
					if (void 0 === e) n = "utf8", r = this.length, e = 0;
					else if (void 0 === r && "string" == typeof e) n = e, r = this.length, e =
					0;
					else {
						if (!isFinite(e)) throw new Error(
							"Buffer.write(string, encoding, offset[, length]) is no longer supported"
							);
						e |= 0, isFinite(r) ? (r |= 0, void 0 === n && (n = "utf8")) : (n = r,
							r = void 0)
					}
					var s = this.length - e;
					if ((void 0 === r || r > s) && (r = s), t.length > 0 && (r < 0 || e < 0) ||
						e > this.length) throw new RangeError(
						"Attempt to write outside buffer bounds");
					n || (n = "utf8");
					for (var o = !1;;) switch (n) {
						case "hex":
							return b(this, t, e, r);
						case "utf8":
						case "utf-8":
							return w(this, t, e, r);
						case "ascii":
							return _(this, t, e, r);
						case "latin1":
						case "binary":
							return E(this, t, e, r);
						case "base64":
							return k(this, t, e, r);
						case "ucs2":
						case "ucs-2":
						case "utf16le":
						case "utf-16le":
							return A(this, t, e, r);
						default:
							if (o) throw new TypeError("Unknown encoding: " + n);
							n = ("" + n).toLowerCase(), o = !0
					}
				}, c.prototype.toJSON = function() {
					return {
						type: "Buffer",
						data: Array.prototype.slice.call(this._arr || this, 0)
					}
				};

			function C(t, e, r) {
				var n = "";
				r = Math.min(t.length, r);
				for (var s = e; s < r; ++s) n += String.fromCharCode(127 & t[s]);
				return n
			}

			function T(t, e, r) {
				var n = "";
				r = Math.min(t.length, r);
				for (var s = e; s < r; ++s) n += String.fromCharCode(t[s]);
				return n
			}

			function P(t, e, r) {
				var n = t.length;
				(!e || e < 0) && (e = 0), (!r || r < 0 || r > n) && (r = n);
				for (var s = "", o = e; o < r; ++o) s += D(t[o]);
				return s
			}

			function R(t, e, r) {
				for (var n = t.slice(e, r), s = "", o = 0; o < n.length; o += 2) s += String
					.fromCharCode(n[o] + 256 * n[o + 1]);
				return s
			}

			function x(t, e, r) {
				if (t % 1 != 0 || t < 0) throw new RangeError("offset is not uint");
				if (t + e > r) throw new RangeError("Trying to access beyond buffer length")
			}

			function B(t, e, r, n, s, o) {
				if (!c.isBuffer(t)) throw new TypeError(
					'"buffer" argument must be a Buffer instance');
				if (e > s || e < o) throw new RangeError('"value" argument is out of bounds');
				if (r + n > t.length) throw new RangeError("Index out of range")
			}

			function N(t, e, r, n) {
				e < 0 && (e = 65535 + e + 1);
				for (var s = 0, o = Math.min(t.length - r, 2); s < o; ++s) t[r + s] = (e &
					255 << 8 * (n ? s : 1 - s)) >>> 8 * (n ? s : 1 - s)
			}

			function L(t, e, r, n) {
				e < 0 && (e = 4294967295 + e + 1);
				for (var s = 0, o = Math.min(t.length - r, 4); s < o; ++s) t[r + s] = e >>> 8 *
					(n ? s : 3 - s) & 255
			}

			function j(t, e, r, n, s, o) {
				if (r + n > t.length) throw new RangeError("Index out of range");
				if (r < 0) throw new RangeError("Index out of range")
			}

			function I(t, e, r, n, o) {
				return o || j(t, 0, r, 4), s.write(t, e, r, n, 23, 4), r + 4
			}

			function U(t, e, r, n, o) {
				return o || j(t, 0, r, 8), s.write(t, e, r, n, 52, 8), r + 8
			}
			c.prototype.slice = function(t, e) {
				var r, n = this.length;
				if ((t = ~~t) < 0 ? (t += n) < 0 && (t = 0) : t > n && (t = n), (e =
						void 0 === e ? n : ~~e) < 0 ? (e += n) < 0 && (e = 0) : e > n && (
						e = n), e < t && (e = t), c.TYPED_ARRAY_SUPPORT)(r = this.subarray(
					t, e)).__proto__ = c.prototype;
				else {
					var s = e - t;
					r = new c(s, void 0);
					for (var o = 0; o < s; ++o) r[o] = this[o + t]
				}
				return r
			}, c.prototype.readUIntLE = function(t, e, r) {
				t |= 0, e |= 0, r || x(t, e, this.length);
				for (var n = this[t], s = 1, o = 0; ++o < e && (s *= 256);) n += this[t +
					o] * s;
				return n
			}, c.prototype.readUIntBE = function(t, e, r) {
				t |= 0, e |= 0, r || x(t, e, this.length);
				for (var n = this[t + --e], s = 1; e > 0 && (s *= 256);) n += this[t + --
					e] * s;
				return n
			}, c.prototype.readUInt8 = function(t, e) {
				return e || x(t, 1, this.length), this[t]
			}, c.prototype.readUInt16LE = function(t, e) {
				return e || x(t, 2, this.length), this[t] | this[t + 1] << 8
			}, c.prototype.readUInt16BE = function(t, e) {
				return e || x(t, 2, this.length), this[t] << 8 | this[t + 1]
			}, c.prototype.readUInt32LE = function(t, e) {
				return e || x(t, 4, this.length), (this[t] | this[t + 1] << 8 | this[t +
					2] << 16) + 16777216 * this[t + 3]
			}, c.prototype.readUInt32BE = function(t, e) {
				return e || x(t, 4, this.length), 16777216 * this[t] + (this[t + 1] << 16 |
					this[t + 2] << 8 | this[t + 3])
			}, c.prototype.readIntLE = function(t, e, r) {
				t |= 0, e |= 0, r || x(t, e, this.length);
				for (var n = this[t], s = 1, o = 0; ++o < e && (s *= 256);) n += this[t +
					o] * s;
				return n >= (s *= 128) && (n -= Math.pow(2, 8 * e)), n
			}, c.prototype.readIntBE = function(t, e, r) {
				t |= 0, e |= 0, r || x(t, e, this.length);
				for (var n = e, s = 1, o = this[t + --n]; n > 0 && (s *= 256);) o += this[
					t + --n] * s;
				return o >= (s *= 128) && (o -= Math.pow(2, 8 * e)), o
			}, c.prototype.readInt8 = function(t, e) {
				return e || x(t, 1, this.length), 128 & this[t] ? -1 * (255 - this[t] + 1) :
					this[t]
			}, c.prototype.readInt16LE = function(t, e) {
				e || x(t, 2, this.length);
				var r = this[t] | this[t + 1] << 8;
				return 32768 & r ? 4294901760 | r : r
			}, c.prototype.readInt16BE = function(t, e) {
				e || x(t, 2, this.length);
				var r = this[t + 1] | this[t] << 8;
				return 32768 & r ? 4294901760 | r : r
			}, c.prototype.readInt32LE = function(t, e) {
				return e || x(t, 4, this.length), this[t] | this[t + 1] << 8 | this[t +
					2] << 16 | this[t + 3] << 24
			}, c.prototype.readInt32BE = function(t, e) {
				return e || x(t, 4, this.length), this[t] << 24 | this[t + 1] << 16 | this[
					t + 2] << 8 | this[t + 3]
			}, c.prototype.readFloatLE = function(t, e) {
				return e || x(t, 4, this.length), s.read(this, t, !0, 23, 4)
			}, c.prototype.readFloatBE = function(t, e) {
				return e || x(t, 4, this.length), s.read(this, t, !1, 23, 4)
			}, c.prototype.readDoubleLE = function(t, e) {
				return e || x(t, 8, this.length), s.read(this, t, !0, 52, 8)
			}, c.prototype.readDoubleBE = function(t, e) {
				return e || x(t, 8, this.length), s.read(this, t, !1, 52, 8)
			}, c.prototype.writeUIntLE = function(t, e, r, n) {
				(t = +t, e |= 0, r |= 0, n) || B(this, t, e, r, Math.pow(2, 8 * r) - 1, 0);
				var s = 1,
					o = 0;
				for (this[e] = 255 & t; ++o < r && (s *= 256);) this[e + o] = t / s & 255;
				return e + r
			}, c.prototype.writeUIntBE = function(t, e, r, n) {
				(t = +t, e |= 0, r |= 0, n) || B(this, t, e, r, Math.pow(2, 8 * r) - 1, 0);
				var s = r - 1,
					o = 1;
				for (this[e + s] = 255 & t; --s >= 0 && (o *= 256);) this[e + s] = t / o &
					255;
				return e + r
			}, c.prototype.writeUInt8 = function(t, e, r) {
				return t = +t, e |= 0, r || B(this, t, e, 1, 255, 0), c
					.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)), this[e] = 255 & t, e + 1
			}, c.prototype.writeUInt16LE = function(t, e, r) {
				return t = +t, e |= 0, r || B(this, t, e, 2, 65535, 0), c
					.TYPED_ARRAY_SUPPORT ? (this[e] = 255 & t, this[e + 1] = t >>> 8) : N(
						this, t, e, !0), e + 2
			}, c.prototype.writeUInt16BE = function(t, e, r) {
				return t = +t, e |= 0, r || B(this, t, e, 2, 65535, 0), c
					.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 8, this[e + 1] = 255 & t) : N(
						this, t, e, !1), e + 2
			}, c.prototype.writeUInt32LE = function(t, e, r) {
				return t = +t, e |= 0, r || B(this, t, e, 4, 4294967295, 0), c
					.TYPED_ARRAY_SUPPORT ? (this[e + 3] = t >>> 24, this[e + 2] = t >>> 16,
						this[e + 1] = t >>> 8, this[e] = 255 & t) : L(this, t, e, !0), e + 4
			}, c.prototype.writeUInt32BE = function(t, e, r) {
				return t = +t, e |= 0, r || B(this, t, e, 4, 4294967295, 0), c
					.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 24, this[e + 1] = t >>> 16,
						this[e + 2] = t >>> 8, this[e + 3] = 255 & t) : L(this, t, e, !1),
					e + 4
			}, c.prototype.writeIntLE = function(t, e, r, n) {
				if (t = +t, e |= 0, !n) {
					var s = Math.pow(2, 8 * r - 1);
					B(this, t, e, r, s - 1, -s)
				}
				var o = 0,
					i = 1,
					a = 0;
				for (this[e] = 255 & t; ++o < r && (i *= 256);) t < 0 && 0 === a && 0 !==
					this[e + o - 1] && (a = 1), this[e + o] = (t / i >> 0) - a & 255;
				return e + r
			}, c.prototype.writeIntBE = function(t, e, r, n) {
				if (t = +t, e |= 0, !n) {
					var s = Math.pow(2, 8 * r - 1);
					B(this, t, e, r, s - 1, -s)
				}
				var o = r - 1,
					i = 1,
					a = 0;
				for (this[e + o] = 255 & t; --o >= 0 && (i *= 256);) t < 0 && 0 === a &&
					0 !== this[e + o + 1] && (a = 1), this[e + o] = (t / i >> 0) - a & 255;
				return e + r
			}, c.prototype.writeInt8 = function(t, e, r) {
				return t = +t, e |= 0, r || B(this, t, e, 1, 127, -128), c
					.TYPED_ARRAY_SUPPORT || (t = Math.floor(t)), t < 0 && (t = 255 + t + 1),
					this[e] = 255 & t, e + 1
			}, c.prototype.writeInt16LE = function(t, e, r) {
				return t = +t, e |= 0, r || B(this, t, e, 2, 32767, -32768), c
					.TYPED_ARRAY_SUPPORT ? (this[e] = 255 & t, this[e + 1] = t >>> 8) : N(
						this, t, e, !0), e + 2
			}, c.prototype.writeInt16BE = function(t, e, r) {
				return t = +t, e |= 0, r || B(this, t, e, 2, 32767, -32768), c
					.TYPED_ARRAY_SUPPORT ? (this[e] = t >>> 8, this[e + 1] = 255 & t) : N(
						this, t, e, !1), e + 2
			}, c.prototype.writeInt32LE = function(t, e, r) {
				return t = +t, e |= 0, r || B(this, t, e, 4, 2147483647, -2147483648), c
					.TYPED_ARRAY_SUPPORT ? (this[e] = 255 & t, this[e + 1] = t >>> 8, this[
						e + 2] = t >>> 16, this[e + 3] = t >>> 24) : L(this, t, e, !0), e +
					4
			}, c.prototype.writeInt32BE = function(t, e, r) {
				return t = +t, e |= 0, r || B(this, t, e, 4, 2147483647, -2147483648), t <
					0 && (t = 4294967295 + t + 1), c.TYPED_ARRAY_SUPPORT ? (this[e] = t >>>
						24, this[e + 1] = t >>> 16, this[e + 2] = t >>> 8, this[e + 3] =
						255 & t) : L(this, t, e, !1), e + 4
			}, c.prototype.writeFloatLE = function(t, e, r) {
				return I(this, t, e, !0, r)
			}, c.prototype.writeFloatBE = function(t, e, r) {
				return I(this, t, e, !1, r)
			}, c.prototype.writeDoubleLE = function(t, e, r) {
				return U(this, t, e, !0, r)
			}, c.prototype.writeDoubleBE = function(t, e, r) {
				return U(this, t, e, !1, r)
			}, c.prototype.copy = function(t, e, r, n) {
				if (r || (r = 0), n || 0 === n || (n = this.length), e >= t.length && (e = t
						.length), e || (e = 0), n > 0 && n < r && (n = r), n === r)
			return 0;
				if (0 === t.length || 0 === this.length) return 0;
				if (e < 0) throw new RangeError("targetStart out of bounds");
				if (r < 0 || r >= this.length) throw new RangeError(
					"sourceStart out of bounds");
				if (n < 0) throw new RangeError("sourceEnd out of bounds");
				n > this.length && (n = this.length), t.length - e < n - r && (n = t
					.length - e + r);
				var s, o = n - r;
				if (this === t && r < e && e < n)
					for (s = o - 1; s >= 0; --s) t[s + e] = this[s + r];
				else if (o < 1e3 || !c.TYPED_ARRAY_SUPPORT)
					for (s = 0; s < o; ++s) t[s + e] = this[s + r];
				else Uint8Array.prototype.set.call(t, this.subarray(r, r + o), e);
				return o
			}, c.prototype.fill = function(t, e, r, n) {
				if ("string" == typeof t) {
					if ("string" == typeof e ? (n = e, e = 0, r = this.length) : "string" ==
						typeof r && (n = r, r = this.length), 1 === t.length) {
						var s = t.charCodeAt(0);
						s < 256 && (t = s)
					}
					if (void 0 !== n && "string" != typeof n) throw new TypeError(
						"encoding must be a string");
					if ("string" == typeof n && !c.isEncoding(n)) throw new TypeError(
						"Unknown encoding: " + n)
				} else "number" == typeof t && (t &= 255);
				if (e < 0 || this.length < e || this.length < r) throw new RangeError(
					"Out of range index");
				if (r <= e) return this;
				var o;
				if (e >>>= 0, r = void 0 === r ? this.length : r >>> 0, t || (t = 0),
					"number" == typeof t)
					for (o = e; o < r; ++o) this[o] = t;
				else {
					var i = c.isBuffer(t) ? t : Y(new c(t, n).toString()),
						a = i.length;
					for (o = 0; o < r - e; ++o) this[o + e] = i[o % a]
				}
				return this
			};
			var M = /[^+\/0-9A-Za-z-_]/g;

			function D(t) {
				return t < 16 ? "0" + t.toString(16) : t.toString(16)
			}

			function Y(t, e) {
				var r;
				e = e || 1 / 0;
				for (var n = t.length, s = null, o = [], i = 0; i < n; ++i) {
					if ((r = t.charCodeAt(i)) > 55295 && r < 57344) {
						if (!s) {
							if (r > 56319) {
								(e -= 3) > -1 && o.push(239, 191, 189);
								continue
							}
							if (i + 1 === n) {
								(e -= 3) > -1 && o.push(239, 191, 189);
								continue
							}
							s = r;
							continue
						}
						if (r < 56320) {
							(e -= 3) > -1 && o.push(239, 191, 189), s = r;
							continue
						}
						r = 65536 + (s - 55296 << 10 | r - 56320)
					} else s && (e -= 3) > -1 && o.push(239, 191, 189);
					if (s = null, r < 128) {
						if ((e -= 1) < 0) break;
						o.push(r)
					} else if (r < 2048) {
						if ((e -= 2) < 0) break;
						o.push(r >> 6 | 192, 63 & r | 128)
					} else if (r < 65536) {
						if ((e -= 3) < 0) break;
						o.push(r >> 12 | 224, r >> 6 & 63 | 128, 63 & r | 128)
					} else {
						if (!(r < 1114112)) throw new Error("Invalid code point");
						if ((e -= 4) < 0) break;
						o.push(r >> 18 | 240, r >> 12 & 63 | 128, r >> 6 & 63 | 128, 63 & r |
							128)
					}
				}
				return o
			}

			function q(t) {
				return n.toByteArray(function(t) {
					if ((t = function(t) {
							return t.trim ? t.trim() : t.replace(/^\s+|\s+$/g, "")
						}(t).replace(M, "")).length < 2) return "";
					for (; t.length % 4 != 0;) t += "=";
					return t
				}(t))
			}

			function F(t, e, r, n) {
				for (var s = 0; s < n && !(s + r >= e.length || s >= t.length); ++s) e[s + r] =
					t[s];
				return s
			}
		}).call(this, r(7))
	}, function(t, e, r) {
		"use strict";
		e.byteLength = function(t) {
			var e = h(t),
				r = e[0],
				n = e[1];
			return 3 * (r + n) / 4 - n
		}, e.toByteArray = function(t) {
			var e, r, n = h(t),
				i = n[0],
				a = n[1],
				c = new o(function(t, e, r) {
					return 3 * (e + r) / 4 - r
				}(0, i, a)),
				u = 0,
				f = a > 0 ? i - 4 : i;
			for (r = 0; r < f; r += 4) e = s[t.charCodeAt(r)] << 18 | s[t.charCodeAt(r + 1)] <<
				12 | s[t.charCodeAt(r + 2)] << 6 | s[t.charCodeAt(r + 3)], c[u++] = e >> 16 &
				255, c[u++] = e >> 8 & 255, c[u++] = 255 & e;
			2 === a && (e = s[t.charCodeAt(r)] << 2 | s[t.charCodeAt(r + 1)] >> 4, c[u++] =
				255 & e);
			1 === a && (e = s[t.charCodeAt(r)] << 10 | s[t.charCodeAt(r + 1)] << 4 | s[t
				.charCodeAt(r + 2)] >> 2, c[u++] = e >> 8 & 255, c[u++] = 255 & e);
			return c
		}, e.fromByteArray = function(t) {
			for (var e, r = t.length, s = r % 3, o = [], i = 0, a = r - s; i < a; i += 16383) o
				.push(u(t, i, i + 16383 > a ? a : i + 16383));
			1 === s ? (e = t[r - 1], o.push(n[e >> 2] + n[e << 4 & 63] + "==")) : 2 === s && (
				e = (t[r - 2] << 8) + t[r - 1], o.push(n[e >> 10] + n[e >> 4 & 63] + n[e <<
					2 & 63] + "="));
			return o.join("")
		};
		for (var n = [], s = [], o = "undefined" != typeof Uint8Array ? Uint8Array : Array, i =
				"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", a = 0, c = i
				.length; a < c; ++a) n[a] = i[a], s[i.charCodeAt(a)] = a;

		function h(t) {
			var e = t.length;
			if (e % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4");
			var r = t.indexOf("=");
			return -1 === r && (r = e), [r, r === e ? 0 : 4 - r % 4]
		}

		function u(t, e, r) {
			for (var s, o, i = [], a = e; a < r; a += 3) s = (t[a] << 16 & 16711680) + (t[a + 1] <<
				8 & 65280) + (255 & t[a + 2]), i.push(n[(o = s) >> 18 & 63] + n[o >> 12 & 63] +
				n[o >> 6 & 63] + n[63 & o]);
			return i.join("")
		}
		s["-".charCodeAt(0)] = 62, s["_".charCodeAt(0)] = 63
	}, function(t, e) {
		e.read = function(t, e, r, n, s) {
			var o, i, a = 8 * s - n - 1,
				c = (1 << a) - 1,
				h = c >> 1,
				u = -7,
				f = r ? s - 1 : 0,
				p = r ? -1 : 1,
				l = t[e + f];
			for (f += p, o = l & (1 << -u) - 1, l >>= -u, u += a; u > 0; o = 256 * o + t[e + f],
				f += p, u -= 8);
			for (i = o & (1 << -u) - 1, o >>= -u, u += n; u > 0; i = 256 * i + t[e + f], f += p,
				u -= 8);
			if (0 === o) o = 1 - h;
			else {
				if (o === c) return i ? NaN : 1 / 0 * (l ? -1 : 1);
				i += Math.pow(2, n), o -= h
			}
			return (l ? -1 : 1) * i * Math.pow(2, o - n)
		}, e.write = function(t, e, r, n, s, o) {
			var i, a, c, h = 8 * o - s - 1,
				u = (1 << h) - 1,
				f = u >> 1,
				p = 23 === s ? Math.pow(2, -24) - Math.pow(2, -77) : 0,
				l = n ? 0 : o - 1,
				d = n ? 1 : -1,
				y = e < 0 || 0 === e && 1 / e < 0 ? 1 : 0;
			for (e = Math.abs(e), isNaN(e) || e === 1 / 0 ? (a = isNaN(e) ? 1 : 0, i = u) : (i =
					Math.floor(Math.log(e) / Math.LN2), e * (c = Math.pow(2, -i)) < 1 && (i--,
						c *= 2), (e += i + f >= 1 ? p / c : p * Math.pow(2, 1 - f)) * c >= 2 &&
					(i++, c /= 2), i + f >= u ? (a = 0, i = u) : i + f >= 1 ? (a = (e * c - 1) *
						Math.pow(2, s), i += f) : (a = e * Math.pow(2, f - 1) * Math.pow(2, s),
						i = 0)); s >= 8; t[r + l] = 255 & a, l += d, a /= 256, s -= 8);
			for (i = i << s | a, h += s; h > 0; t[r + l] = 255 & i, l += d, i /= 256, h -= 8);
			t[r + l - d] |= 128 * y
		}
	}, function(t, e) {
		var r = {}.toString;
		t.exports = Array.isArray || function(t) {
			return "[object Array]" == r.call(t)
		}
	}, function(t, e, r) {
		const {
			PACKET_TYPES: n
		} = r(9), s = "function" == typeof Blob || "undefined" != typeof Blob &&
			"[object BlobConstructor]" === Object.prototype.toString.call(Blob), o = "function" ==
			typeof ArrayBuffer, i = (t, e) => {
				const r = new FileReader;
				return r.onload = function() {
					const t = r.result.split(",")[1];
					e("b" + t)
				}, r.readAsDataURL(t)
			};
		t.exports = ({
			type: t,
			data: e
		}, r, a) => {
			return s && e instanceof Blob ? r ? a(e) : i(e, a) : o && (
					e instanceof ArrayBuffer || (c = e, "function" == typeof ArrayBuffer
						.isView ? ArrayBuffer.isView(c) : c && c.buffer instanceof ArrayBuffer)
					) ? r ? a(e) : i(new Blob([e]), a) : a(n[t] + (e || ""));
			var c
		}
	}, function(t, e, r) {
		const {
			PACKET_TYPES_REVERSE: n,
			ERROR_PACKET: s
		} = r(9);
		let o;
		"function" == typeof ArrayBuffer && (o = r(26));
		const i = (t, e) => {
				if (o) {
					const r = o.decode(t);
					return a(r, e)
				}
				return {
					base64: !0,
					data: t
				}
			},
			a = (t, e) => {
				switch (e) {
					case "blob":
						return t instanceof ArrayBuffer ? new Blob([t]) : t;
					case "arraybuffer":
					default:
						return t
				}
			};
		t.exports = (t, e) => {
			if ("string" != typeof t) return {
				type: "message",
				data: a(t, e)
			};
			const r = t.charAt(0);
			return "b" === r ? {
				type: "message",
				data: i(t.substring(1), e)
			} : n[r] ? t.length > 1 ? {
				type: n[r],
				data: t.substring(1)
			} : {
				type: n[r]
			} : s
		}
	}, function(t, e) {
		! function(t) {
			"use strict";
			e.encode = function(e) {
				var r, n = new Uint8Array(e),
					s = n.length,
					o = "";
				for (r = 0; r < s; r += 3) o += t[n[r] >> 2], o += t[(3 & n[r]) << 4 | n[r +
					1] >> 4], o += t[(15 & n[r + 1]) << 2 | n[r + 2] >> 6], o += t[63 & n[
					r + 2]];
				return s % 3 == 2 ? o = o.substring(0, o.length - 1) + "=" : s % 3 == 1 && (o =
					o.substring(0, o.length - 2) + "=="), o
			}, e.decode = function(e) {
				var r, n, s, o, i, a = .75 * e.length,
					c = e.length,
					h = 0;
				"=" === e[e.length - 1] && (a--, "=" === e[e.length - 2] && a--);
				var u = new ArrayBuffer(a),
					f = new Uint8Array(u);
				for (r = 0; r < c; r += 4) n = t.indexOf(e[r]), s = t.indexOf(e[r + 1]), o = t
					.indexOf(e[r + 2]), i = t.indexOf(e[r + 3]), f[h++] = n << 2 | s >> 4, f[
						h++] = (15 & s) << 4 | o >> 2, f[h++] = (3 & o) << 6 | 63 & i;
				return u
			}
		}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")
	}, function(t, e, r) {
		"use strict";
		var n, s = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".split(""),
			o = {},
			i = 0,
			a = 0;

		function c(t) {
			var e = "";
			do {
				e = s[t % 64] + e, t = Math.floor(t / 64)
			} while (t > 0);
			return e
		}

		function h() {
			var t = c(+new Date);
			return t !== n ? (i = 0, n = t) : t + "." + c(i++)
		}
		for (; a < 64; a++) o[s[a]] = a;
		h.encode = c, h.decode = function(t) {
			var e = 0;
			for (a = 0; a < t.length; a++) e = 64 * e + o[t.charAt(a)];
			return e
		}, t.exports = h
	}, function(t, e) {
		t.exports.pick = (t, ...e) => e.reduce((e, r) => (t.hasOwnProperty(r) && (e[r] = t[r]),
		e), {})
	}, function(t, e, r) {
		t.exports = {
			WebSocket: r(30),
			usingBrowserWebSocket: !1,
			defaultBinaryType: "nodebuffer"
		}
	}, function(t, e, r) {
		const n = r(31),
			{
				URL: s
			} = r(32),
			{
				addEventListener: o,
				removeEventListener: i
			} = r(39),
			a = r(40),
			c = r(0)("wx-ws:wx-ws"),
			h = ["nodebuffer", "arraybuffer"],
			u = ["CONNECTING", "OPEN", "CLOSING", "CLOSED"];
		class f extends n {
			constructor(t, e, r) {
				super(), c("constructor: ", t, e, r), this.readyState = f.CONNECTING, this
					.protocol = "", this._closeCode = 1006, this._closeMessage = "", this
					._binaryType = h[0], this._socket = null, this.supports = {
						binary: !0
					}, null !== t && (this._bufferedAmount = 0, this._redirects = 0, "object" ==
						typeof e && null !== e && (r = e, e = void 0),
						function(t, e, r, n) {
							const s = {
								maxPayload: 104857600,
								perMessageDeflate: !0,
								...n
							};
							c("initAsClient: opts: ", s), t.url = e;
							const o = function(t, e) {
								c("start create conn: ", t);
								const r = wx.connectSocket(t);
								if (r) return r;
								return {
									onClose: wx.onSocketClose,
									onOpen: wx.onSocketOpen,
									onError: wx.onSocketError,
									onMessage: wx.onSocketMessage,
									send: wx.sendSocketMessage,
									close: wx.closeSocket
								}
							}({
								url: t.url,
								header: s.headers,
								protocols: r,
								perMessageDeflate: !!s.perMessageDeflate,
								tcpNoDelay: !!s.tcpNoDelay
							});
							t.setSocket(o)
						}(this, t, e, r))
			}
			get CONNECTING() {
				return f.CONNECTING
			}
			get CLOSING() {
				return f.CLOSING
			}
			get CLOSED() {
				return f.CLOSED
			}
			get OPEN() {
				return f.OPEN
			}
			get bufferedAmount() {
				return this._socket ? (this._socket.bufferSize || 0) + this._sender
					._bufferedBytes : this._bufferedAmount
			}
			get binaryType() {
				return this._binaryType
			}
			set binaryType(t) {
				c("set binaryType: ", t), h.includes(t) && (this._binaryType = t)
			}
			setSocket(t, e) {
				this._socket = t, this._sender = new a(t), c("set socket: socket =", t,
					", head =", e, ", this: ", this), this._socket.onOpen(t => {
					c("socket onopen: ", t), this.readyState = f.OPEN, this.emit("open",
						t)
				}), this._socket.onClose(t => {
					c("socket onclose: ", t), this._closeCode = t.code, this
						._closeMessage = t.reason, this.emitClose()
				}), this._socket.onError(t => {
					c("socket onerror: ", t), this.emit("error", t)
				}), this._socket.onMessage(t => {
					c("socket onmessage: ", t, this), this.emit("message", t.data)
				})
			}
			emitClose() {
				this.readyState = f.CLOSED, this.removeEventListener(), this.emit("close", this
					._closeCode, this._closeMessage)
			}
			send(t, e, r) {
				if (c("socket send msg: ", t, this.readyState, ", sender: ", this._sender), this
					.readyState === f.CONNECTING) throw new Error(
					"WebSocket is not open: readyState 0 (CONNECTING)");
				if ("number" == typeof t && (t = t.toString()), this.readyState === f.OPEN) this
					._sender.send(t, e, r);
				else if (r) {
					r(new Error(`WebSocket is not open: readyState ${this.readyState} ` +
						`(${u[this.readyState]})`))
				}
			}
			close(t, e) {
				if (c("closing connection: ", this.readyState), this.readyState !== f.CLOSED) {
					if (this.readyState === f.CONNECTING) {
						throw new Error(
							"WebSocket was closed before the connection was established")
					}
					this.readyState !== f.CLOSING && (this.readyState = f.CLOSING, this._socket
						.close({
							code: t,
							reason: e,
							success: () => {
								c("connection closed..."), this.readyState = f
									.CLOSED, this._socket = null
							}
						}))
				}
			}
		}
		u.forEach((t, e) => {
			f[t] = e
		}), ["open", "error", "close", "message"].forEach(t => {
			Object.defineProperty(f.prototype, `on${t}`, {
				get() {
					const e = this.listeners(t);
					for (let t = 0; t < e.length; t++)
						if (e[t]._listener) return e[t]._listener
				},
				set(e) {
					const r = this.listeners(t);
					for (let e = 0; e < r.length; e++) r[e]._listener && this
						.removeListener(t, r[e]);
					this.addEventListener(t, e)
				}
			})
		}), f.prototype.addEventListener = o, f.prototype.removeEventListener = i, t.exports = f
	}, function(t, e, r) {
		"use strict";
		var n, s = "object" == typeof Reflect ? Reflect : null,
			o = s && "function" == typeof s.apply ? s.apply : function(t, e, r) {
				return Function.prototype.apply.call(t, e, r)
			};
		n = s && "function" == typeof s.ownKeys ? s.ownKeys : Object.getOwnPropertySymbols ?
			function(t) {
				return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))
			} : function(t) {
				return Object.getOwnPropertyNames(t)
			};
		var i = Number.isNaN || function(t) {
			return t != t
		};

		function a() {
			a.init.call(this)
		}
		t.exports = a, a.EventEmitter = a, a.prototype._events = void 0, a.prototype._eventsCount =
			0, a.prototype._maxListeners = void 0;
		var c = 10;

		function h(t) {
			if ("function" != typeof t) throw new TypeError(
				'The "listener" argument must be of type Function. Received type ' +
				typeof t)
		}

		function u(t) {
			return void 0 === t._maxListeners ? a.defaultMaxListeners : t._maxListeners
		}

		function f(t, e, r, n) {
			var s, o, i, a;
			if (h(r), void 0 === (o = t._events) ? (o = t._events = Object.create(null), t
					._eventsCount = 0) : (void 0 !== o.newListener && (t.emit("newListener", e, r
					.listener ? r.listener : r), o = t._events), i = o[e]), void 0 === i) i = o[e] =
				r, ++t._eventsCount;
			else if ("function" == typeof i ? i = o[e] = n ? [r, i] : [i, r] : n ? i.unshift(r) : i
				.push(r), (s = u(t)) > 0 && i.length > s && !i.warned) {
				i.warned = !0;
				var c = new Error("Possible EventEmitter memory leak detected. " + i.length + " " +
					String(e) +
					" listeners added. Use emitter.setMaxListeners() to increase limit");
				c.name = "MaxListenersExceededWarning", c.emitter = t, c.type = e, c.count = i
					.length, a = c, console && console.warn && console.warn(a)
			}
			return t
		}

		function p() {
			if (!this.fired) return this.target.removeListener(this.type, this.wrapFn), this
				.fired = !0, 0 === arguments.length ? this.listener.call(this.target) : this
				.listener.apply(this.target, arguments)
		}

		function l(t, e, r) {
			var n = {
					fired: !1,
					wrapFn: void 0,
					target: t,
					type: e,
					listener: r
				},
				s = p.bind(n);
			return s.listener = r, n.wrapFn = s, s
		}

		function d(t, e, r) {
			var n = t._events;
			if (void 0 === n) return [];
			var s = n[e];
			return void 0 === s ? [] : "function" == typeof s ? r ? [s.listener || s] : [s] : r ?
				function(t) {
					for (var e = new Array(t.length), r = 0; r < e.length; ++r) e[r] = t[r]
						.listener || t[r];
					return e
				}(s) : g(s, s.length)
		}

		function y(t) {
			var e = this._events;
			if (void 0 !== e) {
				var r = e[t];
				if ("function" == typeof r) return 1;
				if (void 0 !== r) return r.length
			}
			return 0
		}

		function g(t, e) {
			for (var r = new Array(e), n = 0; n < e; ++n) r[n] = t[n];
			return r
		}
		Object.defineProperty(a, "defaultMaxListeners", {
				enumerable: !0,
				get: function() {
					return c
				},
				set: function(t) {
					if ("number" != typeof t || t < 0 || i(t)) throw new RangeError(
						'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' +
						t + ".");
					c = t
				}
			}), a.init = function() {
				void 0 !== this._events && this._events !== Object.getPrototypeOf(this)._events || (
						this._events = Object.create(null), this._eventsCount = 0), this
					._maxListeners = this._maxListeners || void 0
			}, a.prototype.setMaxListeners = function(t) {
				if ("number" != typeof t || t < 0 || i(t)) throw new RangeError(
					'The value of "n" is out of range. It must be a non-negative number. Received ' +
					t + ".");
				return this._maxListeners = t, this
			}, a.prototype.getMaxListeners = function() {
				return u(this)
			}, a.prototype.emit = function(t) {
				for (var e = [], r = 1; r < arguments.length; r++) e.push(arguments[r]);
				var n = "error" === t,
					s = this._events;
				if (void 0 !== s) n = n && void 0 === s.error;
				else if (!n) return !1;
				if (n) {
					var i;
					if (e.length > 0 && (i = e[0]), i instanceof Error) throw i;
					var a = new Error("Unhandled error." + (i ? " (" + i.message + ")" : ""));
					throw a.context = i, a
				}
				var c = s[t];
				if (void 0 === c) return !1;
				if ("function" == typeof c) o(c, this, e);
				else {
					var h = c.length,
						u = g(c, h);
					for (r = 0; r < h; ++r) o(u[r], this, e)
				}
				return !0
			}, a.prototype.addListener = function(t, e) {
				return f(this, t, e, !1)
			}, a.prototype.on = a.prototype.addListener, a.prototype.prependListener = function(t,
				e) {
				return f(this, t, e, !0)
			}, a.prototype.once = function(t, e) {
				return h(e), this.on(t, l(this, t, e)), this
			}, a.prototype.prependOnceListener = function(t, e) {
				return h(e), this.prependListener(t, l(this, t, e)), this
			}, a.prototype.removeListener = function(t, e) {
				var r, n, s, o, i;
				if (h(e), void 0 === (n = this._events)) return this;
				if (void 0 === (r = n[t])) return this;
				if (r === e || r.listener === e) 0 == --this._eventsCount ? this._events = Object
					.create(null) : (delete n[t], n.removeListener && this.emit("removeListener", t,
						r.listener || e));
				else if ("function" != typeof r) {
					for (s = -1, o = r.length - 1; o >= 0; o--)
						if (r[o] === e || r[o].listener === e) {
							i = r[o].listener, s = o;
							break
						} if (s < 0) return this;
					0 === s ? r.shift() : function(t, e) {
							for (; e + 1 < t.length; e++) t[e] = t[e + 1];
							t.pop()
						}(r, s), 1 === r.length && (n[t] = r[0]), void 0 !== n.removeListener &&
						this.emit("removeListener", t, i || e)
				}
				return this
			}, a.prototype.off = a.prototype.removeListener, a.prototype.removeAllListeners =
			function(t) {
				var e, r, n;
				if (void 0 === (r = this._events)) return this;
				if (void 0 === r.removeListener) return 0 === arguments.length ? (this._events =
						Object.create(null), this._eventsCount = 0) : void 0 !== r[t] && (0 ==
						--this._eventsCount ? this._events = Object.create(null) : delete r[t]),
					this;
				if (0 === arguments.length) {
					var s, o = Object.keys(r);
					for (n = 0; n < o.length; ++n) "removeListener" !== (s = o[n]) && this
						.removeAllListeners(s);
					return this.removeAllListeners("removeListener"), this._events = Object.create(
						null), this._eventsCount = 0, this
				}
				if ("function" == typeof(e = r[t])) this.removeListener(t, e);
				else if (void 0 !== e)
					for (n = e.length - 1; n >= 0; n--) this.removeListener(t, e[n]);
				return this
			}, a.prototype.listeners = function(t) {
				return d(this, t, !0)
			}, a.prototype.rawListeners = function(t) {
				return d(this, t, !1)
			}, a.listenerCount = function(t, e) {
				return "function" == typeof t.listenerCount ? t.listenerCount(e) : y.call(t, e)
			}, a.prototype.listenerCount = y, a.prototype.eventNames = function() {
				return this._eventsCount > 0 ? n(this._events) : []
			}
	}, function(t, e, r) {
		"use strict";
		var n = r(33),
			s = r(35);

		function o() {
			this.protocol = null, this.slashes = null, this.auth = null, this.host = null, this
				.port = null, this.hostname = null, this.hash = null, this.search = null, this
				.query = null, this.pathname = null, this.path = null, this.href = null
		}
		e.parse = b, e.resolve = function(t, e) {
			return b(t, !1, !0).resolve(e)
		}, e.resolveObject = function(t, e) {
			return t ? b(t, !1, !0).resolveObject(e) : e
		}, e.format = function(t) {
			s.isString(t) && (t = b(t));
			return t instanceof o ? t.format() : o.prototype.format.call(t)
		}, e.Url = o;
		var i = /^([a-z0-9.+-]+:)/i,
			a = /:[0-9]*$/,
			c = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,
			h = ["{", "}", "|", "\\", "^", "`"].concat(["<", ">", '"', "`", " ", "\r", "\n", "\t"]),
			u = ["'"].concat(h),
			f = ["%", "/", "?", ";", "#"].concat(u),
			p = ["/", "?", "#"],
			l = /^[+a-z0-9A-Z_-]{0,63}$/,
			d = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,
			y = {
				javascript: !0,
				"javascript:": !0
			},
			g = {
				javascript: !0,
				"javascript:": !0
			},
			m = {
				http: !0,
				https: !0,
				ftp: !0,
				gopher: !0,
				file: !0,
				"http:": !0,
				"https:": !0,
				"ftp:": !0,
				"gopher:": !0,
				"file:": !0
			},
			v = r(36);

		function b(t, e, r) {
			if (t && s.isObject(t) && t instanceof o) return t;
			var n = new o;
			return n.parse(t, e, r), n
		}
		o.prototype.parse = function(t, e, r) {
			if (!s.isString(t)) throw new TypeError("Parameter 'url' must be a string, not " +
				typeof t);
			var o = t.indexOf("?"),
				a = -1 !== o && o < t.indexOf("#") ? "?" : "#",
				h = t.split(a);
			h[0] = h[0].replace(/\\/g, "/");
			var b = t = h.join(a);
			if (b = b.trim(), !r && 1 === t.split("#").length) {
				var w = c.exec(b);
				if (w) return this.path = b, this.href = b, this.pathname = w[1], w[2] ? (this
						.search = w[2], this.query = e ? v.parse(this.search.substr(1)) :
						this.search.substr(1)) : e && (this.search = "", this.query = {}),
					this
			}
			var _ = i.exec(b);
			if (_) {
				var E = (_ = _[0]).toLowerCase();
				this.protocol = E, b = b.substr(_.length)
			}
			if (r || _ || b.match(/^\/\/[^@\/]+@[^@\/]+/)) {
				var k = "//" === b.substr(0, 2);
				!k || _ && g[_] || (b = b.substr(2), this.slashes = !0)
			}
			if (!g[_] && (k || _ && !m[_])) {
				for (var A, O, S = -1, C = 0; C < p.length; C++) {
					-1 !== (T = b.indexOf(p[C])) && (-1 === S || T < S) && (S = T)
				} - 1 !== (O = -1 === S ? b.lastIndexOf("@") : b.lastIndexOf("@", S)) && (A = b
						.slice(0, O), b = b.slice(O + 1), this.auth = decodeURIComponent(A)),
					S = -1;
				for (C = 0; C < f.length; C++) {
					var T; - 1 !== (T = b.indexOf(f[C])) && (-1 === S || T < S) && (S = T)
				} - 1 === S && (S = b.length), this.host = b.slice(0, S), b = b.slice(S), this
					.parseHost(), this.hostname = this.hostname || "";
				var P = "[" === this.hostname[0] && "]" === this.hostname[this.hostname.length -
					1];
				if (!P)
					for (var R = this.hostname.split(/\./), x = (C = 0, R.length); C < x; C++) {
						var B = R[C];
						if (B && !B.match(l)) {
							for (var N = "", L = 0, j = B.length; L < j; L++) B.charCodeAt(L) >
								127 ? N += "x" : N += B[L];
							if (!N.match(l)) {
								var I = R.slice(0, C),
									U = R.slice(C + 1),
									M = B.match(d);
								M && (I.push(M[1]), U.unshift(M[2])), U.length && (b = "/" + U
									.join(".") + b), this.hostname = I.join(".");
								break
							}
						}
					}
				this.hostname.length > 255 ? this.hostname = "" : this.hostname = this.hostname
					.toLowerCase(), P || (this.hostname = n.toASCII(this.hostname));
				var D = this.port ? ":" + this.port : "",
					Y = this.hostname || "";
				this.host = Y + D, this.href += this.host, P && (this.hostname = this.hostname
					.substr(1, this.hostname.length - 2), "/" !== b[0] && (b = "/" + b))
			}
			if (!y[E])
				for (C = 0, x = u.length; C < x; C++) {
					var q = u[C];
					if (-1 !== b.indexOf(q)) {
						var F = encodeURIComponent(q);
						F === q && (F = escape(q)), b = b.split(q).join(F)
					}
				}
			var K = b.indexOf("#"); - 1 !== K && (this.hash = b.substr(K), b = b.slice(0, K));
			var V = b.indexOf("?");
			if (-1 !== V ? (this.search = b.substr(V), this.query = b.substr(V + 1), e && (this
					.query = v.parse(this.query)), b = b.slice(0, V)) : e && (this.search = "",
					this.query = {}), b && (this.pathname = b), m[E] && this.hostname && !this
				.pathname && (this.pathname = "/"), this.pathname || this.search) {
				D = this.pathname || "";
				var z = this.search || "";
				this.path = D + z
			}
			return this.href = this.format(), this
		}, o.prototype.format = function() {
			var t = this.auth || "";
			t && (t = (t = encodeURIComponent(t)).replace(/%3A/i, ":"), t += "@");
			var e = this.protocol || "",
				r = this.pathname || "",
				n = this.hash || "",
				o = !1,
				i = "";
			this.host ? o = t + this.host : this.hostname && (o = t + (-1 === this.hostname
						.indexOf(":") ? this.hostname : "[" + this.hostname + "]"), this.port &&
					(o += ":" + this.port)), this.query && s.isObject(this.query) && Object
				.keys(this.query).length && (i = v.stringify(this.query));
			var a = this.search || i && "?" + i || "";
			return e && ":" !== e.substr(-1) && (e += ":"), this.slashes || (!e || m[e]) && !
				1 !== o ? (o = "//" + (o || ""), r && "/" !== r.charAt(0) && (r = "/" + r)) :
				o || (o = ""), n && "#" !== n.charAt(0) && (n = "#" + n), a && "?" !== a.charAt(
					0) && (a = "?" + a), e + o + (r = r.replace(/[?#]/g, (function(t) {
					return encodeURIComponent(t)
				}))) + (a = a.replace("#", "%23")) + n
		}, o.prototype.resolve = function(t) {
			return this.resolveObject(b(t, !1, !0)).format()
		}, o.prototype.resolveObject = function(t) {
			if (s.isString(t)) {
				var e = new o;
				e.parse(t, !1, !0), t = e
			}
			for (var r = new o, n = Object.keys(this), i = 0; i < n.length; i++) {
				var a = n[i];
				r[a] = this[a]
			}
			if (r.hash = t.hash, "" === t.href) return r.href = r.format(), r;
			if (t.slashes && !t.protocol) {
				for (var c = Object.keys(t), h = 0; h < c.length; h++) {
					var u = c[h];
					"protocol" !== u && (r[u] = t[u])
				}
				return m[r.protocol] && r.hostname && !r.pathname && (r.path = r.pathname =
					"/"), r.href = r.format(), r
			}
			if (t.protocol && t.protocol !== r.protocol) {
				if (!m[t.protocol]) {
					for (var f = Object.keys(t), p = 0; p < f.length; p++) {
						var l = f[p];
						r[l] = t[l]
					}
					return r.href = r.format(), r
				}
				if (r.protocol = t.protocol, t.host || g[t.protocol]) r.pathname = t.pathname;
				else {
					for (var d = (t.pathname || "").split("/"); d.length && !(t.host = d
						.shift()););
					t.host || (t.host = ""), t.hostname || (t.hostname = ""), "" !== d[0] && d
						.unshift(""), d.length < 2 && d.unshift(""), r.pathname = d.join("/")
				}
				if (r.search = t.search, r.query = t.query, r.host = t.host || "", r.auth = t
					.auth, r.hostname = t.hostname || t.host, r.port = t.port, r.pathname || r
					.search) {
					var y = r.pathname || "",
						v = r.search || "";
					r.path = y + v
				}
				return r.slashes = r.slashes || t.slashes, r.href = r.format(), r
			}
			var b = r.pathname && "/" === r.pathname.charAt(0),
				w = t.host || t.pathname && "/" === t.pathname.charAt(0),
				_ = w || b || r.host && t.pathname,
				E = _,
				k = r.pathname && r.pathname.split("/") || [],
				A = (d = t.pathname && t.pathname.split("/") || [], r.protocol && !m[r
					.protocol]);
			if (A && (r.hostname = "", r.port = null, r.host && ("" === k[0] ? k[0] = r.host : k
					.unshift(r.host)), r.host = "", t.protocol && (t.hostname = null, t
					.port = null, t.host && ("" === d[0] ? d[0] = t.host : d.unshift(t
						.host)), t.host = null), _ = _ && ("" === d[0] || "" === k[0])), w) r
				.host = t.host || "" === t.host ? t.host : r.host, r.hostname = t.hostname ||
				"" === t.hostname ? t.hostname : r.hostname, r.search = t.search, r.query = t
				.query, k = d;
			else if (d.length) k || (k = []), k.pop(), k = k.concat(d), r.search = t.search, r
				.query = t.query;
			else if (!s.isNullOrUndefined(t.search)) {
				if (A) r.hostname = r.host = k.shift(), (P = !!(r.host && r.host.indexOf("@") >
					0) && r.host.split("@")) && (r.auth = P.shift(), r.host = r.hostname = P
					.shift());
				return r.search = t.search, r.query = t.query, s.isNull(r.pathname) && s.isNull(
					r.search) || (r.path = (r.pathname ? r.pathname : "") + (r.search ? r
					.search : "")), r.href = r.format(), r
			}
			if (!k.length) return r.pathname = null, r.search ? r.path = "/" + r.search : r
				.path = null, r.href = r.format(), r;
			for (var O = k.slice(-1)[0], S = (r.host || t.host || k.length > 1) && ("." === O ||
					".." === O) || "" === O, C = 0, T = k.length; T >= 0; T--) "." === (O = k[
				T]) ? k.splice(T, 1) : ".." === O ? (k.splice(T, 1), C++) : C && (k.splice(
				T, 1), C--);
			if (!_ && !E)
				for (; C--; C) k.unshift("..");
			!_ || "" === k[0] || k[0] && "/" === k[0].charAt(0) || k.unshift(""), S && "/" !== k
				.join("/").substr(-1) && k.push("");
			var P, R = "" === k[0] || k[0] && "/" === k[0].charAt(0);
			A && (r.hostname = r.host = R ? "" : k.length ? k.shift() : "", (P = !!(r.host && r
				.host.indexOf("@") > 0) && r.host.split("@")) && (r.auth = P.shift(), r
				.host = r.hostname = P.shift()));
			return (_ = _ || r.host && k.length) && !R && k.unshift(""), k.length ? r.pathname =
				k.join("/") : (r.pathname = null, r.path = null), s.isNull(r.pathname) && s
				.isNull(r.search) || (r.path = (r.pathname ? r.pathname : "") + (r.search ? r
					.search : "")), r.auth = t.auth || r.auth, r.slashes = r.slashes || t
				.slashes, r.href = r.format(), r
		}, o.prototype.parseHost = function() {
			var t = this.host,
				e = a.exec(t);
			e && (":" !== (e = e[0]) && (this.port = e.substr(1)), t = t.substr(0, t.length - e
				.length)), t && (this.hostname = t)
		}
	}, function(t, e, r) {
		(function(t, n) {
			var s; /*! https://mths.be/punycode v1.4.1 by @mathias */
			! function(o) {
				e && e.nodeType, t && t.nodeType;
				var i = "object" == typeof n && n;
				i.global !== i && i.window !== i && i.self;
				var a, c = 2147483647,
					h = /^xn--/,
					u = /[^\x20-\x7E]/,
					f = /[\x2E\u3002\uFF0E\uFF61]/g,
					p = {
						overflow: "Overflow: input needs wider integers to process",
						"not-basic": "Illegal input >= 0x80 (not a basic code point)",
						"invalid-input": "Invalid input"
					},
					l = Math.floor,
					d = String.fromCharCode;

				function y(t) {
					throw new RangeError(p[t])
				}

				function g(t, e) {
					for (var r = t.length, n = []; r--;) n[r] = e(t[r]);
					return n
				}

				function m(t, e) {
					var r = t.split("@"),
						n = "";
					return r.length > 1 && (n = r[0] + "@", t = r[1]), n + g((t = t.replace(f,
						".")).split("."), e).join(".")
				}

				function v(t) {
					for (var e, r, n = [], s = 0, o = t.length; s < o;)(e = t.charCodeAt(
						s++)) >= 55296 && e <= 56319 && s < o ? 56320 == (64512 & (r = t
							.charCodeAt(s++))) ? n.push(((1023 & e) << 10) + (1023 & r) +
						65536) : (n.push(e), s--) : n.push(e);
					return n
				}

				function b(t) {
					return g(t, (function(t) {
						var e = "";
						return t > 65535 && (e += d((t -= 65536) >>> 10 & 1023 |
							55296), t = 56320 | 1023 & t), e += d(t)
					})).join("")
				}

				function w(t, e) {
					return t + 22 + 75 * (t < 26) - ((0 != e) << 5)
				}

				function _(t, e, r) {
					var n = 0;
					for (t = r ? l(t / 700) : t >> 1, t += l(t / e); t > 455; n += 36) t = l(t /
						35);
					return l(n + 36 * t / (t + 38))
				}

				function E(t) {
					var e, r, n, s, o, i, a, h, u, f, p, d = [],
						g = t.length,
						m = 0,
						v = 128,
						w = 72;
					for ((r = t.lastIndexOf("-")) < 0 && (r = 0), n = 0; n < r; ++n) t
						.charCodeAt(n) >= 128 && y("not-basic"), d.push(t.charCodeAt(n));
					for (s = r > 0 ? r + 1 : 0; s < g;) {
						for (o = m, i = 1, a = 36; s >= g && y("invalid-input"), ((h = (p = t
									.charCodeAt(s++)) - 48 < 10 ? p - 22 : p - 65 < 26 ? p -
								65 : p - 97 < 26 ? p - 97 : 36) >= 36 || h > l((c - m) / i)) &&
							y("overflow"), m += h * i, !(h < (u = a <= w ? 1 : a >= w + 26 ?
								26 : a - w)); a += 36) i > l(c / (f = 36 - u)) && y("overflow"),
							i *= f;
						w = _(m - o, e = d.length + 1, 0 == o), l(m / e) > c - v && y(
							"overflow"), v += l(m / e), m %= e, d.splice(m++, 0, v)
					}
					return b(d)
				}

				function k(t) {
					var e, r, n, s, o, i, a, h, u, f, p, g, m, b, E, k = [];
					for (g = (t = v(t)).length, e = 128, r = 0, o = 72, i = 0; i < g; ++i)(p =
						t[i]) < 128 && k.push(d(p));
					for (n = s = k.length, s && k.push("-"); n < g;) {
						for (a = c, i = 0; i < g; ++i)(p = t[i]) >= e && p < a && (a = p);
						for (a - e > l((c - r) / (m = n + 1)) && y("overflow"), r += (a - e) *
							m, e = a, i = 0; i < g; ++i)
							if ((p = t[i]) < e && ++r > c && y("overflow"), p == e) {
								for (h = r, u = 36; !(h < (f = u <= o ? 1 : u >= o + 26 ? 26 :
										u - o)); u += 36) E = h - f, b = 36 - f, k.push(d(w(f +
									E % b, 0))), h = l(E / b);
								k.push(d(w(h, 0))), o = _(r, m, n == s), r = 0, ++n
							}++ r, ++e
					}
					return k.join("")
				}
				a = {
					version: "1.4.1",
					ucs2: {
						decode: v,
						encode: b
					},
					decode: E,
					encode: k,
					toASCII: function(t) {
						return m(t, (function(t) {
							return u.test(t) ? "xn--" + k(t) : t
						}))
					},
					toUnicode: function(t) {
						return m(t, (function(t) {
							return h.test(t) ? E(t.slice(4).toLowerCase()) :
								t
						}))
					}
				}, void 0 === (s = function() {
					return a
				}.call(e, r, e, t)) || (t.exports = s)
			}()
		}).call(this, r(34)(t), r(7))
	}, function(t, e) {
		t.exports = function(t) {
			return t.webpackPolyfill || (t.deprecate = function() {}, t.paths = [], t
				.children || (t.children = []), Object.defineProperty(t, "loaded", {
					enumerable: !0,
					get: function() {
						return t.l
					}
				}), Object.defineProperty(t, "id", {
					enumerable: !0,
					get: function() {
						return t.i
					}
				}), t.webpackPolyfill = 1), t
		}
	}, function(t, e, r) {
		"use strict";
		t.exports = {
			isString: function(t) {
				return "string" == typeof t
			},
			isObject: function(t) {
				return "object" == typeof t && null !== t
			},
			isNull: function(t) {
				return null === t
			},
			isNullOrUndefined: function(t) {
				return null == t
			}
		}
	}, function(t, e, r) {
		"use strict";
		e.decode = e.parse = r(37), e.encode = e.stringify = r(38)
	}, function(t, e, r) {
		"use strict";

		function n(t, e) {
			return Object.prototype.hasOwnProperty.call(t, e)
		}
		t.exports = function(t, e, r, o) {
			e = e || "&", r = r || "=";
			var i = {};
			if ("string" != typeof t || 0 === t.length) return i;
			var a = /\+/g;
			t = t.split(e);
			var c = 1e3;
			o && "number" == typeof o.maxKeys && (c = o.maxKeys);
			var h = t.length;
			c > 0 && h > c && (h = c);
			for (var u = 0; u < h; ++u) {
				var f, p, l, d, y = t[u].replace(a, "%20"),
					g = y.indexOf(r);
				g >= 0 ? (f = y.substr(0, g), p = y.substr(g + 1)) : (f = y, p = ""), l =
					decodeURIComponent(f), d = decodeURIComponent(p), n(i, l) ? s(i[l]) ? i[l]
					.push(d) : i[l] = [i[l], d] : i[l] = d
			}
			return i
		};
		var s = Array.isArray || function(t) {
			return "[object Array]" === Object.prototype.toString.call(t)
		}
	}, function(t, e, r) {
		"use strict";
		var n = function(t) {
			switch (typeof t) {
				case "string":
					return t;
				case "boolean":
					return t ? "true" : "false";
				case "number":
					return isFinite(t) ? t : "";
				default:
					return ""
			}
		};
		t.exports = function(t, e, r, a) {
			return e = e || "&", r = r || "=", null === t && (t = void 0), "object" ==
				typeof t ? o(i(t), (function(i) {
					var a = encodeURIComponent(n(i)) + r;
					return s(t[i]) ? o(t[i], (function(t) {
						return a + encodeURIComponent(n(t))
					})).join(e) : a + encodeURIComponent(n(t[i]))
				})).join(e) : a ? encodeURIComponent(n(a)) + r + encodeURIComponent(n(t)) : ""
		};
		var s = Array.isArray || function(t) {
			return "[object Array]" === Object.prototype.toString.call(t)
		};

		function o(t, e) {
			if (t.map) return t.map(e);
			for (var r = [], n = 0; n < t.length; n++) r.push(e(t[n], n));
			return r
		}
		var i = Object.keys || function(t) {
			var e = [];
			for (var r in t) Object.prototype.hasOwnProperty.call(t, r) && e.push(r);
			return e
		}
	}, function(t, e, r) {
		"use strict";
		class n {
			constructor(t, e) {
				this.target = e, this.type = t
			}
		}
		class s extends n {
			constructor(t, e) {
				super("message", e), this.data = t
			}
		}
		class o extends n {
			constructor(t, e, r) {
				super("close", r), this.wasClean = r._closeFrameReceived && r._closeFrameSent,
					this.reason = e, this.code = t
			}
		}
		class i extends n {
			constructor(t) {
				super("open", t)
			}
		}
		class a extends n {
			constructor(t, e) {
				super("error", e), this.message = t.message, this.error = t
			}
		}
		const c = {
			addEventListener(t, e) {
				function r(t) {
					e.call(this, new s(t, this))
				}

				function n(t, r) {
					e.call(this, new o(t, r, this))
				}

				function c(t) {
					e.call(this, new a(t, this))
				}

				function h() {
					e.call(this, new i(this))
				}
				"function" == typeof e && ("message" === t ? (r._listener = e, this.on(t, r)) :
					"close" === t ? (n._listener = e, this.on(t, n)) : "error" === t ? (c
						._listener = e, this.on(t, c)) : "open" === t ? (h._listener = e,
						this.on(t, h)) : this.on(t, e))
			},
			removeEventListener(t, e) {
				const r = this.listeners(t);
				for (let n = 0; n < r.length; n++) r[n] !== e && r[n]._listener !== e || this
					.removeListener(t, r[n])
			}
		};
		t.exports = c
	}, function(t, e, r) {
		const n = r(0)("wx-ws:sender");
		t.exports = class {
			constructor(t) {
				this._socket = t, this._queue = [], this._bufferedBytes = 0, this
					._deflating = !1
			}
			send(t, e, r) {
				n("send msg: ", t, " sender: ", this, this._deflating), this._deflating ?
					this.enqueue([this.dispatch, t, e, r]) : this.dispatch(t, e, r)
			}
			dispatch(t, e, r) {
				n("dispatch msg: ", t, ", sender: ", this), this._deflating = !0,
					"function" == typeof e && (r = e, e = {}), this._deflating = !1, this
					._socket.send({
						data: t,
						success: t => r && r(null, t),
						fail: t => r && r(t)
					}), this.dequeue()
			}
			dequeue() {
				for (; !this._deflating && this._queue.length;) {
					const t = this._queue.shift();
					this._bufferedBytes -= t[1].length, Reflect.apply(t[0], this, t.slice(
						1))
				}
			}
			enqueue(t) {
				this._bufferedBytes += t[1].length, this._queue.push(t)
			}
		}
	}, function(t, e, r) {
		"use strict";
		Object.defineProperty(e, "__esModule", {
			value: !0
		}), e.reconstructPacket = e.deconstructPacket = void 0;
		const n = r(12);
		e.deconstructPacket = function(t) {
			const e = [],
				r = t.data,
				s = t;
			return s.data = function t(e, r) {
				if (!e) return e;
				if (n.isBinary(e)) {
					const t = {
						_placeholder: !0,
						num: r.length
					};
					return r.push(e), t
				}
				if (Array.isArray(e)) {
					const n = new Array(e.length);
					for (let s = 0; s < e.length; s++) n[s] = t(e[s], r);
					return n
				}
				if ("object" == typeof e && !(e instanceof Date)) {
					const n = {};
					for (const s in e) e.hasOwnProperty(s) && (n[s] = t(e[s], r));
					return n
				}
				return e
			}(r, e), s.attachments = e.length, {
				packet: s,
				buffers: e
			}
		}, e.reconstructPacket = function(t, e) {
			return t.data = function t(e, r) {
				if (!e) return e;
				if (e && e._placeholder) return r[e.num];
				if (Array.isArray(e))
					for (let n = 0; n < e.length; n++) e[n] = t(e[n], r);
				else if ("object" == typeof e)
					for (const n in e) e.hasOwnProperty(n) && (e[n] = t(e[n], r));
				return e
			}(t.data, e), t.attachments = void 0, t
		}
	}, function(t, e) {
		function r(t) {
			t = t || {}, this.ms = t.min || 100, this.max = t.max || 1e4, this.factor = t.factor ||
				2, this.jitter = t.jitter > 0 && t.jitter <= 1 ? t.jitter : 0, this.attempts = 0
		}
		t.exports = r, r.prototype.duration = function() {
			var t = this.ms * Math.pow(this.factor, this.attempts++);
			if (this.jitter) {
				var e = Math.random(),
					r = Math.floor(e * this.jitter * t);
				t = 0 == (1 & Math.floor(10 * e)) ? t - r : t + r
			}
			return 0 | Math.min(t, this.max)
		}, r.prototype.reset = function() {
			this.attempts = 0
		}, r.prototype.setMin = function(t) {
			this.ms = t
		}, r.prototype.setMax = function(t) {
			this.max = t
		}, r.prototype.setJitter = function(t) {
			this.jitter = t
		}
	}])
}));
